Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Code abkürzten (https://www.delphipraxis.net/159762-code-abkuerzten.html)

thomas2009 12. Apr 2011 01:33


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;

roga 12. Apr 2011 02:28

AW: Code abkürzten
 
Delphi-Quellcode:
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;
...aber welchen Sinn soll das ergeben? Du übergeibt Werte die nur in dieser Procedure gelten!

schlecki 12. Apr 2011 06:07

AW: Code abkürzten
 
anstatt

Delphi-Quellcode:
TryStrToInt(Edit1.Text, i)
ginge auch

Delphi-Quellcode:
i := StrToIntDef(Edit1.Text, 1);

mkinzler 12. Apr 2011 07:17

AW: Code abkürzten
 
Und verwende den Parameter Sender statt eine namentlichen Instanz

schlecki 12. Apr 2011 07:26

AW: Code abkürzten
 
dann müsste er aber wieder casten... ob das gut geht? :-D

mkinzler 12. Apr 2011 08:05

AW: Code abkürzten
 
Natürlich kann man seine Auto auch scheiben, anstatt zu lernen, wie man den Motor startet :stupid:

schlecki 12. Apr 2011 08:35

AW: Code abkürzten
 
Zitat:

Zitat von mkinzler (Beitrag 1094564)
Natürlich kann man seine Auto auch scheiben, anstatt zu lernen, wie man den Motor startet :stupid:

Mein Auto hat'n Motor? verdammt... jetzt komm ich vielleicht auch weniger verschwitzt auf der Arbeit an :cyclops:

Neutral General 12. Apr 2011 09:25

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;

DeddyH 12. Apr 2011 09:31

AW: Code abkürzten
 
Ihr habt aber alle die 0 vergessen (siehe Ausgangspost).
Delphi-Quellcode:
var
  x, y, z: Integer;
begin
  x := StrToIntDef(Edit1.Text,1);
  if x = 0 then
    x := 1;
  y := x * 2;
  z := x * 3;
end;
Sollten negative Zahlen nicht zulässig sein, ginge es wohl auch mit
Delphi-Quellcode:
x := math.max(StrToIntDef(Edit1.Text,1), 1);

himitsu 12. Apr 2011 09:57

AW: Code abkürzten
 
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 :angle2:

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 :stupid:

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 13:46 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz