Problem mit Editfeld und int-wert
-
Hallo,
ich hab folgendes Problem: Ich hab ein Formular in dem zwei Editfelder sind, in dem einen soll eine Zahl eingegeben werden (Edit1), im andern Editfeld (Edit2) soll dann gesagt werden ob die Zahl höher als 5 ist, ich hab das so gemacht:
[b]void __fastcall[/b] TForm1::Edit1Change(TObject *Sender) { [b]if[/b] (StrToInt(Edit1->Text) > 5) { Edit2->Text = "größer"; } [b]else[/b] { Edit2->Text = "kleiner"; } }Nun hab ich nur ein Problem und zwar wenn ich aus dem Editfeld (Edit1) die Zahl die ich eingegeben habe entferne stürzt das Programm immer ab und zeigt folgende Felermeldung an:
Benachrichtigung über Debugger-Exception
Om Projekt "Project1.exe" ist eine Exception der Klasse EConvertError aufgetreten. Meldung: "" ist kein gültiger Integerwert. Mit Einzelne Anweisung oder Start fortsetzen.
OK Hilfe
Kann mir einer sagen wie ich das beheben kann? Für euch ist das sicher kein großes Problem, nur ich bin leider noch ein Anfänger. Schon mal danke.
Sebi
-
Hallo
StrToInt kann nunmal keinen leeren AnsiString in eine Zahl umwandeln.
Du könntest mit try/catch arbeiten, aber einfacher gehts mit StrToIntDefvoid __fastcall TForm1::Edit1Change(TObject *Sender) { if (StrToIntDef(Edit1->Text, 0) > 5) { Edit2->Text = "größer"; } else { Edit2->Text = "kleiner"; } }ps: Nimm beim nächsten mal für das Posten von C++ Code auch die Tags für C++ Code, die sind links vom Code-Button
bis bald
akari