Hallo.
In meinem Programm kann man bestimmte Werte in Edit-Felder eingeben, um aus denen anschließend über Formeln einen Ausgangswert zu berechnen. Das funktioniert soweit wie es soll, jedoch stürzt das Programm ab sobald ein Edit-Feld leer bleibt.
Ist ja auch logisch, weil das Programm "nichts" schlecht konvertieren kann.
Gibt es eine Funktion oder einen Befehl, mit dem man eine solche Fehlermeldung vermeiden kann und in so einer Situation eine Showmessage angezeigt werden kann?
Danke im voraus(:
Exception-Klasse Fehler verhindern
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Exception-Klasse Fehler verhindern
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 6927
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Exception-Klasse Fehler verhindern
So sollte es gehen, es wird kein Except mehr ausgelöst.
Ich denke, du hast ein einfaches StrToFloat genommen.
Ich denke, du hast ein einfaches StrToFloat genommen.
Code: Alles auswählen
procedure TForm1.Edit1Change(Sender: TObject);
var
f: single;
begin
if TryStrToFloat(Edit1.Text, f) then begin
Label1.Caption := FloatToStr(f);
end;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Exception-Klasse Fehler verhindern
Ja, das habe ich (: also einfach ein "Try" davor setzen?Mathias hat geschrieben: Ich denke, du hast ein einfaches StrToFloat genommen.
-
- Beiträge: 6927
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Exception-Klasse Fehler verhindern
Du kannst es noch ganz elegant lösen, dann sieht man sofort, wen etwas ungültiges im Edit steht.Ja, das habe ich (: also einfach ein "Try" davor setzen?
Code: Alles auswählen
if TryStrToFloat(Edit1.Text, f) then begin
Label1.Caption := FloatToStr(f);
Edit1.Color := clWhite;
end else begin
Edit1.Color := clRed;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Exception-Klasse Fehler verhindern
Das Prinzip hab ich soweit verstanden, Ich weiß nur nicht recht WO ich diesen Befehl nun einfügen soll.
Der Fehler entsteht wenn ich den Button um berechnen klicke. soll ich diesen Befehl also unter der procedure TForm1.Button1click setzen oder wohin?
Und wo kommt der Label aufeinmal her ?
Tut mir leid, habe kaum Fachwissen mit Lazarus und Pascal
Der Fehler entsteht wenn ich den Button um berechnen klicke. soll ich diesen Befehl also unter der procedure TForm1.Button1click setzen oder wohin?
Und wo kommt der Label aufeinmal her ?
Tut mir leid, habe kaum Fachwissen mit Lazarus und Pascal
