![]() |
Code abkürzten
Hi
kann man hier den Code abkürzten?
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; |
AW: Code abkürzten
Delphi-Quellcode:
...aber welchen Sinn soll das ergeben? Du übergeibt Werte die nur in dieser Procedure gelten!
var
x, y, z, i: Integer; begin if not TryStrToInt(Edit1.Text, i) then i := 1; x := i; y := i * 2; z := i * 3; end; |
AW: Code abkürzten
anstatt
Delphi-Quellcode:
ginge auch
TryStrToInt(Edit1.Text, i)
Delphi-Quellcode:
i := StrToIntDef(Edit1.Text, 1);
|
AW: Code abkürzten
Und verwende den Parameter Sender statt eine namentlichen Instanz
|
AW: Code abkürzten
dann müsste er aber wieder casten... ob das gut geht? :-D
|
AW: Code abkürzten
Natürlich kann man seine Auto auch scheiben, anstatt zu lernen, wie man den Motor startet :stupid:
|
AW: Code abkürzten
Zitat:
|
AW: Code abkürzten
Hallo,
Noch ein bisschen kleiner ginge es so:
Delphi-Quellcode:
var
x, y, z: Integer; begin x := StrToIntDef(Edit1.Text,1); y := x * 2; z := x * 3; end; |
AW: Code abkürzten
Ihr habt aber alle die 0 vergessen (siehe Ausgangspost).
Delphi-Quellcode:
Sollten negative Zahlen nicht zulässig sein, ginge es wohl auch mit
var
x, y, z: Integer; begin x := StrToIntDef(Edit1.Text,1); if x = 0 then x := 1; y := x * 2; z := x * 3; end;
Delphi-Quellcode:
x := math.max(StrToIntDef(Edit1.Text,1), 1);
|
AW: Code abkürzten
Delphi-Quellcode:
die Logik noch etwas abgewandelt und ich glaub negative Zahlen sind ihm auch nicht so lieb ...
var
x, y, z: Integer; begin x := Max(StrToIntDef(Edit1.Text, 1), 1); y := x * 2; z := x * 3; end; ja, ich könnte auch eine -123 eintagen, wenn ich will :angle2: PS: Auf die einfachste Idee ist noch keiner gekommen? Zitat:
Delphi-Quellcode:
ist zwar immernoch nicht "optimal", aber immerhin kürzer ... so wie gewollt :stupid:
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; 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! :warn: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz