Thema: Delphi Umgang mit RadioGroup

Einzelnen Beitrag anzeigen

SirTwist

Registriert seit: 28. Sep 2006
196 Beiträge
 
Delphi XE Professional
 
#6

Re: Umgang mit RadioGroup

  Alt 12. Mai 2007, 12:10
Ein paar Tipps zu den vorherigen Lösungen:

Werte aus Textfeldern sollten nicht mit StrToInt umgewandelt werden. Besser ist
auswahl := StrToIntDef(ComboBox1.Text,auswahl); ComboBox1.Text := IntToStr(auswahl); Beim normalen StrToInt() wird eine Exception ausgelöst, wenn der eingegebene Text nicht in eine Zahl umgewandlet werden kann. Die obige Zeile versucht, den Text in eine Zahl umzuwandeln. Wenn das nicht geht, wird der Vorgabewert übernommen, den man als zweiten Parameter angibt. Also hier: wenn eine Zahl eingegeben wurde, übernimm diese, ansonsten wird wieder der alte Wert genommen.

Danach wird das Textfeld nochmal neu gesetzt.

Wer es richtig schön machen möchte inkl. Fehlermeldung für den Anwender, sollte sich TryStrToInt() angucken:
Delphi-Quellcode:
if not TryStrToInt(ComboBox1.Text, auswahl) then begin
  MessageDlg('Würden Sie bitte freundlicherweise nur Zahlen eingeben, sonst komme ich durcheinander.'+#10#10+
             'Danke!', mtError, [mbOk], 0);
  exit;
end;
Auf Items[] sollte nicht ohne Prüfung zugegriffen werden, weil es auch dann wieder zu einer Exception kommen kann:

if (ComboBox1.ItemIndex >= 0) then str := Combobox1.items[combobox1.itemindex]; Das bringt hier aber eigentlich nichts, da die Items auch wieder Strings sind, die mit StrToIntDef umgewandelt werden müssen.
  Mit Zitat antworten Zitat