AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Integer <-> TCaption kompatibel machen

Ein Thema von Sturmrider · begonnen am 29. Aug 2006 · letzter Beitrag vom 29. Aug 2006
Antwort Antwort
Sturmrider

Registriert seit: 13. Mär 2006
30 Beiträge
 
#1

Integer <-> TCaption kompatibel machen

  Alt 29. Aug 2006, 15:35
Hi @all
Ich habe nur eine kleine Frage. Ich habe schon längere Zeit lang nichts mehr mit Delphi gemacht, nun werd ich dies aber (leider) wieder regelmäßig müssen. Ich stehe gerade vor einem kleinen Problem: Wie kann ich einen TCaption-Inhalt "Integer-fähig" machen?
->soll heißen: ich habe eine TEdit-Feld in welches Zahlen eingetragen werden sollen, die dann mit klick auf einen Button als interval-Wert eines Times gesetzt werden.
So gehts ja leider nicht (hab mal die Variablen umbenannt, damits übersichtlicher ist):

Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
var inhalt: integer;
begin
 inhalt := Edit1.text;
 Timer1.Interval := inhalt;
end;
THX für eure Hilfe

Gruß Sturmi
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#2

Re: Integer <-> TCaption kompatibel machen

  Alt 29. Aug 2006, 15:37
StrToInt, StrToIntDef und TryStrToInt sind deine Freunde Näheres verrät dir bestimmt die nette OH
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Integer <-> TCaption kompatibel machen

  Alt 29. Aug 2006, 15:41
Das ist ganz einfach:
inhalt := StrToInt (Edit1.text); Vorher evtl noch prüfen, ob in dem TEdit auch wirklich was eingegeben wurde
Delphi-Quellcode:
if Edit1.Text <> 'then
begin
  ...
  ...
end;
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Sturmrider

Registriert seit: 13. Mär 2006
30 Beiträge
 
#4

Re: Integer <-> TCaption kompatibel machen

  Alt 29. Aug 2006, 15:42
ups, stimmt ja ^---^° vielen Dank!
Also für alle weiteren Suchenden (die evtl. genau das gleiche Prob. haben wie ich) so funktionierts:
Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
var inhalt: integer;
begin
inhalt := StrToInt(Edit1.text);
Timer1.Interval := inhalt;
end;
EDIT: @RavenIV gute Idee mit dem Prüfen, THX auch dir ^^

EDIT2: Wobei gibts noch eine möglichkeit nur Zahlen in dem Edit-Feld zuzulassen? Wenn man Buchstaben eingibt bekommt das dem Prog. nicht besonders gut XD

Antwort: k, google Hilft:
Delphi-Quellcode:
function IsStringInteger(const AString: String): Boolean;
begin
  Result:=StrToIntDef(AString,0)=StrToIntDef(AString,1);
end;
  Mit Zitat antworten Zitat
29. Aug 2006, 15:51
Dieses Thema wurde von "Daniel" von "Fragen / Anregungen zur DP" nach "Sonstige Fragen zu Delphi" verschoben.
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#6

Re: Integer <-> TCaption kompatibel machen

  Alt 29. Aug 2006, 15:58
Wie du in deinem Edit-Feld nur Zahlen zulassen kannst, wird hier imForum an einigen Stellen beschrieben und grade auch Diskutiert.
Wenn du

Delphi-Quellcode:
try
  inhalt := StrToInt(Edit1.Text);
except
  ShowMessage('Fehler');
end;
verwendest, werden eventuell auftretende Fehler abgefangen.

try-except-end Fangen Fehler ab, und du kannst eine eigene Fehler-behandlung in dein Prgramm einbauen.
Wenn dein Programm bei Fehlern weiterlaufen soll, musst du unter "Tools -> Debugger-Optionen ->Sprach-Exception -> Bei Delphi-Exceptions stoppen" das Häckchen entfernen!
Christian
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#7

Re: Integer <-> TCaption kompatibel machen

  Alt 29. Aug 2006, 16:00
Das könnte man im Keypress-Event des Edits machen, zB mit:
Delphi-Quellcode:
if Not(Key in ['0'..'9'] then
  abort;
Dann hast du aber immer noch das Copy&Paste Problem. Deswegen mein Hinweis auf TryStrToInt und StrToIntDef. TryStrToInt geibt false zurück, falls ein Wert nicht umgewandelt werden konnte. StrToIntDef hingegen gibt einen Vorgabewert zurück, falls die Umwandlung fehlschlägt.

//Wegen deinem Edit:
Die Funktion ist etwas umständlich, da sie den übergegebenen Wert zweimal per StrToIntDef in einen String umwandelt. Bei der ersten Umwandlung gibts beim Fehlschlag eine 0 beim zweiten eine 1. Durch einen Vergleich dieser beiden Werte ergibt sich der Rückgabewert der Funktion. Schöner wäre imho:
Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
var inhalt: integer;
begin
  if TryStrToInt(Edit1.text, inhalt) then
    Timer1.Interval := inhalt
  else
    showMessage('Bitte geben Sie eine gültige Ganzzahl ein!');
end;
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Integer <-> TCaption kompatibel machen

  Alt 29. Aug 2006, 16:25
Zitat von Cyberbob:
Delphi-Quellcode:
try
  inhalt := StrToInt(Edit1.Text);
except
  ShowMessage('Fehler');
end;
verwendest, werden eventuell auftretende Fehler abgefangen.

try-except-end Fangen Fehler ab, und du kannst eine eigene Fehler-behandlung in dein Prgramm einbauen.
Wenn dein Programm bei Fehlern weiterlaufen soll, musst du unter "Tools -> Debugger-Optionen ->Sprach-Exception -> Bei Delphi-Exceptions stoppen" das Häckchen entfernen!
Eine try..except Konstruktion sollte nur verwendet werden, wenn man einen (unvorhergesehenen) Fehler nicht anderst abfangen kann.
Bei Typ-Umwandlung (Str -> Int) kann man das sehr gut abfangen ohne das try..except zu vergewaltigen. Siehe mein Beitrag weiter oben.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz