Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Fehler bei keiner Eingabe im TEdit


Sakuja - Sa 22.08.09 21:33
Titel: Fehler bei keiner Eingabe im TEdit
Wir haben die folgende Prozedur erstellt und haben nun nen kleines Problem...
Sobald ich ein Feld weiter gehe, ohne eine Eingabe in einem Edit zu machen, schmeißt er mich raus und sagt:
"ProjectRBG.exe Raised exception class EConvertorError with message '' 'is not avalid integer value'."
Ich verstehe aber dann nicht, wieso er das nicht in allen Edits macht, sondern wieso bei einigen diese Prozedur möglich ist, obwohl sie alle gleich sind.
Danke!

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TFormRBG.EditAusAuf1Exit(Sender: TObject);
 begin
 if not  (TEdit(Sender).text = ''then
 begin
 if (strtoint(TEdit(Sender).text) = 0)  then
  begin
  TEdit(Sender).text := #0;
    ShowMessage ('Keine 0 eingeben!!!')
end;
end;
end;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Delete - Sa 22.08.09 21:51

Logisch. "Nichts" ist ja auch keine gültige Ganzzahl.


Sakuja - Sa 22.08.09 22:02

Aber das ist ja eben schon ausgeschlossen worden mit der vorherigen "if not"-Bedingung. Deswegen dürfte dort ja eben NICHT dieses Problem auftreten.


jaenicke - Sa 22.08.09 22:40

Wenn da ein Leerzeichen drin steht, schon, denn das schließt du ja leider nicht aus...
Wie wäre es mit Trim oder noch viel besser mit TryStrToInt?


Tilman - So 23.08.09 00:51

@Sakuja bei mir funktioniert dein Code und es kommt keine Exception. Die Frage wäre wirklich was eigentlich in dem Edit drin steht, bzw. ob definitiv ausgeschlossen werden kann dass da nicht ein Leerzeichen drinsteht. Evtl. könntest du etwas mehr Code posten.