Es handelt sich um ein Grundproblem dieser Delphi-Funktionen: StrToInt, StrToFloat usw. liefern immer einen Fehler (d.h.
Exception), wenn der gegebene String dem gewünschten Zahlentyp nicht entspricht.
Deshalb muss man dieses Problem immer abfangen:
1. Variante
Zitat von
RavenIV:
entweder prüfst Du ab, ob in Edit1 und Edit2 was eingegeben wurde und ob es sich um eine Zahl handelt
Dabei gibst Du ggf. den gewünschten Ersatzwert an:
Delphi-Quellcode:
if (Edit1.Text <> '') AND (isNumber(Edit1.Text))
then a := StrToFloat(Edit1.Text)
else a := 0;
2. Variante
Zitat von
RavenIV:
oder Du machst einen try..except um die Zeilen mit StrToFloat.
Delphi-Quellcode:
try
a := StrToFloat(Edit1.Text);
except
a := 0;
end;
3. Variante
Du lässt Dir diese Arbeit von Delphi abnehmen:
Zitat von
idontwantaname:
Nimm am besten
StrToFloatDef statt
StrToFloat
Bei dieser Funktion kannst du als 2. Parameter einen Wert angeben, der zurückgegeben wird, wenn der String kein valides Float ist.
Delphi-Quellcode:
{Einlesen der Variablen}
a := StrToFloatDef(Edit1.Text, 0);
b := StrToFloatDef(Edit2.Text, 0);
Viel Erfolg! Jürgen