Delphi-Quellcode:
var
x, y, z: Integer;
begin
x := Max(StrToIntDef(Edit1.Text, 1), 1);
y := x * 2;
z := x * 3;
end;
die Logik noch etwas abgewandelt und ich glaub negative Zahlen sind ihm auch nicht so lieb ...
ja, ich könnte auch eine -123 eintagen, wenn ich will
PS: Auf die einfachste Idee ist noch keiner gekommen?
Zitat:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var
x,y,z : Integer;
begin
if (Edit1.Text='0') or (Edit1.Text='') then begin
Edit1.Text:='1';
X:=StrToInt(Edit1.Text);
y:=StrToInt(Edit1.Text)*2;
z:=StrToInt(Edit1.Text)*3;
end else begin
X:=StrToInt(Edit1.Text);
y:=StrToInt(Edit1.Text)*2;
z:=StrToInt(Edit1.Text)*3;
end;
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var
x,y,z : Integer;
begin
if (Edit1.Text='0') or (Edit1.Text='') then
Edit1.Text:='1';
X:=StrToInt(Edit1.Text);
y:=StrToInt(Edit1.Text)*2;
z:=StrToInt(Edit1.Text)*3;
end;
ist zwar immernoch nicht "optimal", aber immerhin kürzer ... so wie gewollt
PS: lösche jetzt mal mit Backspace/DEL alles aus dem Edit und versuch dann 20 einzugeben (schwups, landet man bei 120) ... darum sollte man bei einer Live-Auswertung niemals den Eingabetext verändern!