AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Code abkürzten

Ein Thema von thomas2009 · begonnen am 12. Apr 2011 · letzter Beitrag vom 12. Apr 2011
Antwort Antwort
Seite 1 von 2  1 2      
thomas2009
(Gast)

n/a Beiträge
 
#1

Code abkürzten

  Alt 12. Apr 2011, 01:33
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;
  Mit Zitat antworten Zitat
Benutzerbild von roga
roga

Registriert seit: 15. Jun 2008
Ort: Sachsen-Anhalt
109 Beiträge
 
Delphi XE8 Professional
 
#2

AW: Code abkürzten

  Alt 12. Apr 2011, 02:28
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!
Ronald
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: Code abkürzten

  Alt 12. Apr 2011, 06:07
anstatt

TryStrToInt(Edit1.Text, i) ginge auch

i := StrToIntDef(Edit1.Text, 1);
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Code abkürzten

  Alt 12. Apr 2011, 07:17
Und verwende den Parameter Sender statt eine namentlichen Instanz
Markus Kinzler
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#5

AW: Code abkürzten

  Alt 12. Apr 2011, 07:26
dann müsste er aber wieder casten... ob das gut geht?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Code abkürzten

  Alt 12. Apr 2011, 08:05
Natürlich kann man seine Auto auch scheiben, anstatt zu lernen, wie man den Motor startet
Markus Kinzler
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#7

AW: Code abkürzten

  Alt 12. Apr 2011, 08:35
Natürlich kann man seine Auto auch scheiben, anstatt zu lernen, wie man den Motor startet
Mein Auto hat'n Motor? verdammt... jetzt komm ich vielleicht auch weniger verschwitzt auf der Arbeit an
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Code abkürzten

  Alt 12. Apr 2011, 09:25
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;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Code abkürzten

  Alt 12. Apr 2011, 09:31
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
x := math.max(StrToIntDef(Edit1.Text,1), 1);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.123 Beiträge
 
Delphi 12 Athens
 
#10

AW: Code abkürzten

  Alt 12. Apr 2011, 09:57
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!
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (12. Apr 2011 um 10:02 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr.
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