Hallo,
ich habe 3 Labelededit(le) Felder.
Die Zahl in le1 darf nicht kleiner 0 sein und das Feld darf auch nicht leeren sein.
Bei le2 und le3 müssen die Zahlen aus dem Intervall von [0;9] stammeen und le2<le3.
Mein Quelltext sieht wie folgt aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| begin a:= strtoint (labelededit1.Text); v:= strtoint (labelededit2.text); b:= strtoint (labelededit3.text); n:=0; if (labelededit1.text='') or (a<0) or not (v in [0..10]) or not (b in [0..10]) or (v>b) then begin showmessage ('Bitte alle Felder korrekt ausfüllen' + #13#10 + 'Es dürfen nur Zahlen von [0;10] bei den Einschränkungen enthalten sein'); exit end; |
Wenn ich jetzt le1 leer lasse und denn eine procedure ausführen will, sagt er, dass '' kein gültiger Integralwert ist. Das stimmt auch, aber er sollte ja die Meldung zeigen und das Programm bzw. die Procedure erst gar nicht ausführen. Definiere ich "a" erst nach der if-Bedinungung, geht alles jdeoch einfachfrei. Das versteh ich nicht. An was könnte das liegen bzw. was muss ich in der Bedingung ändern, dass ich a auch vor der Bedingung definieren kann.
Auch das funktioniert nicht:
Delphi-Quelltext
1: 2:
| .... if (Length(labelededit1.text)=0.... |