StrToFloat Fehler und mehr...

Da Damn Cam

Grünschnabel
hi,

also ich progge zurzit an einem kleineren prog habe aber ziemliche probleme damit..also ich habe sogut wie alles hin bekommen..aba nun bleiben ich hänge hier ne bissle code :

procedure TForm1.Ed_Seite_AKeyPress(Sender: TObject; var Key: Char);
begin
// ABFRAGEN OB KEY KORREKT EINGEGEBEN!
if not (IstCharOkay(Key)) then
Key := #0;


Seite_A := StrToFloat(Ed_Seite_A.text);

(*if (IstWertOkay(Seite_A)) then
Berechnung
else
Statusbar.Panels[1].Text := ' DER WERT IST ZU GROSS MAX. 100000';*)
end;


also es wird in der Function "IstCharOkay" geguckt ob die eingegebene Taste die Symbole hat die ich haben will..wenn nicht macht er aus dem Falschen KeyCode ne #0..gar nix...nun weiter..ich habe nun eine Funktion die den Werte Bereichtesten soll...nun der Code..

Seite_A := StrToFloat(Ed_Seite_A.text); irgendwie nicht..also gibt Fehler aus..habe nämlich bis dahin getracen..also befehl für befehl..ah!

egal...also wenn ich was in das edit feld eingeben worauf auch die Funtkion zugreif kommt ne Fenster das sagt :

Project Project1.exe raised exepetion classEConvertError with message "" is not a valid Floating Point value...

mhh zuerst habe ich gedacht wegen diesen code :

Key := #0;

es nicht..weil ich will ja dann

StrToFloat(Ed_Seite_A.text);

string umwandel..aba daran liegt es net..hehe

also woran könnte es den liegen das es nicht ?...btw hat jemand ne vorschlag wie ich am besten den Werte Bereich von einen Real Typ auf 100000 setze..also das kein höherer Wert als dieser in die Editbox kommen kann... ?

danke!
 
Hi,

Deine Fehlermeldung lässt darauf schließen, dass der String leer ist. Du solltest bevor Du irgendwas machst, prüfen, ob der String leer ist (if trim(Ed_Seite_A.text) <> '') oder Du verwendest die Funktion StrToFloatDef, wo Du einen "Default-Wert" angeben kannst, welcher bei einem Fehler zurückgegeben wird (z.B. 0 oder -1 oder was auch immer).

Du kannst einfach prüfen, ob der Wert größer als 100000 ist. (if Wert > 100000 then ....).

Kannst Du mir mal die Funktion IstCharOkay zeigen? Ich habe die Vermutung, dass da etwas schief läuft und Du daher immer einen Leerstring hast.

mfG
mirage228
 

Neue Beiträge

Zurück