![]() |
Hilfe beim Quelletext kürzen
Brauch mal wieder hilfe
wie kann ich den quelltext kürzen aus dünnen oder geht das nicht??? und so ist schon das kürzeste???
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin case form1.ComboBox1.ItemIndex of 0 : form1.Timer1.Interval := 60; 1 : form1.Timer1.Interval := 30; 2 : form1.Timer1.Interval := 15; end; form1.button2.Visible:=false; form1.Button4.Visible:=true; if winkel>360 then winkel:=0; if IsNotInt(edit1.Text) or IsNotInt(edit2.Text) then begin application.MessageBox(pchar('Bitte geben sie nur Zahlen ein!!!'), '!!! Achtung !!!', MB_OK); // ausgabe einer nachricht wenn im feld keine zahlt steht exit; end else Begin r1:=strtoint(edit1.text); r2:=strtoint(edit2.Text); //umwandeln des des string aus den eingabefeldern in einen integer wert und speichern auf dem integer l und r end; z:=r1+2*r2; if z>200 then begin if MessageDlg('soll wirklich gemalt weden???',mtInformation , [mbYes, mbNo], 0) = mrYes then begin with bitmap1.Canvas do begin ellipse(x0-r1,y0-r1,x0+r1,y0+r1); //zentraler Kreis ellipse(x0+r1,y0+r2,x0+r1+2*r2,y0-r2); //außen Kreis pen.Color:=clred; ellipse(x0+r1+2,y0+2,x0+r1-2,y0-2); pen.Color:=clblack; end; timer1.Enabled:=true; end else begin form1.Edit1.text:='50'; form1.Edit2.Text:='10'; form1.button2.Visible:=true; form1.Button4.Visible:=false; end; end else begin with bitmap1.Canvas do begin ellipse(x0-r1,y0-r1,x0+r1,y0+r1); //zentraler Kreis ellipse(x0+r1,y0+r2,x0+r1+2*r2,y0-r2); //außen Kreis pen.Color:=clred; ellipse(x0+r1+2,y0+2,x0+r1-2,y0-2); pen.Color:=clblack; end; timer1.Enabled:=true; end; paintbox1.Canvas.Draw(0,0,bitmap1); end; |
Re: Hilfe beim Quelletext kürzen
Das form1 solltest du weglassen, da form1 die Bezeichnug einer Instanz von TForm1 ist.
|
Re: Hilfe beim Quelletext kürzen
Es ist etwas schwierig, sich in deinem Code zurecht zu finden, da du überhaupt nicht einrückst und nicht klar ist, welches begin zu welchem end gehört. Als Fausregel gilt eigentlich, dass zusammengehörenende Begin-End-paare immer untereinander stehen und nicht wie bei dir im Text:
if z>200 then begin if MessageDlg('soll wirklich gemalt weden???',mtInformation , [mbYes, mbNo], 0) = mrYes then begin with bitmap1.Canvas do begin ellipse(x0-r1,y0-r1,x0+r1,y0+r1); //zentraler Kreis ellipse(x0+r1,y0+r2,x0+r1+2*r2,y0-r2); //außen Kreis pen.Color:=clred; ellipse(x0+r1+2,y0+2,x0+r1-2,y0-2); pen.Color:=clblack; end; timer1.Enabled:=true; end else begin |
Re: Hilfe beim Quelletext kürzen
Zitat:
Dann könne etwas mehr mit Einrücken gemacht werden und dann auch noch etwas gleichmäßiger, ist ja schon fast unübersichtlich ;) Wenn die ComboBox1 nur die 3 Werte hat, könntest du ja auch ein Array verwenden: Const IntervalArray: Array[0..2] of Integer = (60, 30, 15);
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin Timer1.Interval := IntervalArray[ComboBox1.ItemIndex]; ... |
Re: Hilfe beim Quelletext kürzen
Das
Delphi-Quellcode:
kann man imho einfach Weglassen. Zumindest mache ich das so.
pchar('Bitte geben sie nur Zahlen ein!!!')
mfG Markus |
Re: Hilfe beim Quelletext kürzen
Zitat:
Delphi-Quellcode:
ansonsten ist da glaub ich nicht viel zu kürzen...
Timer1.Interval := 60 div IntPower(2,ComboBox1.ItemIndex);
|
Re: Hilfe beim Quelletext kürzen
Ich hab mir mal die Freiheit genommen und den Quelltext mal nach meinen Vorstellungen formatiert, um deine Frage zu beantworten.
Delphi-Quellcode:
Aber ehrlich gesagt, wüsste ich nicht was man da kürzen sollte :gruebel:
procedure TForm1.Button2Click(Sender: TObject);
begin case ComboBox1.ItemIndex of 0 : Timer1.Interval := 60; 1 : Timer1.Interval := 30; 2 : Timer1.Interval := 15; end; button2.Visible:= false; Button4.Visible:= true; if winkel > 360 then winkel:=0; if IsNotInt(Edit1.Text) or IsNotInt(Edit2.Text) then begin MessageBox(pchar('Bitte geben sie nur Zahlen ein!!!'), '!!! Achtung !!!', MB_OK); // ausgabe einer nachricht wenn im feld keine zahlt steht exit; end else begin r1:=strtoint(Edit1.text); r2:=strtoint(Edit2.Text); //umwandeln des des string aus den eingabefeldern in einen integer wert und speichern auf dem integer l und r end; z:= r1 + 2 * r2; if z > 200 then begin if MessageDlg('soll wirklich gemalt weden???',mtInformation , [mbYes, mbNo], 0) = mrYes then begin with Bitmap1.Canvas do begin Ellipse(x0 - r1, y0 - r1, x0 + r1, y0 + r1); //zentraler Kreis Ellipse(x0 + r1, y0 + r2, x0 + r1 + 2 * r2, y0 - r2); //außen Kreis Pen.Color:= clred; Ellipse(x0 + r1 + 2, y0 + 2, x0 + r1 - 2, y0 - 2); Pen.Color:= clblack; end; Timer1.Enabled:= true; end else begin Edit1.text:= '50'; Edit2.Text:= '10'; button2.Visible:= true; Button4.Visible:= false; end; end else begin with Bitmap1.Canvas do begin Ellipse(x0 - r1, y0 - r1, x0 + r1, y0 + r1); //zentraler Kreis Ellipse(x0 + r1, y0 + r2, x0 + r1 + 2 * r2, y0 - r2); //außen Kreis Pen.Color:= clred; Ellipse(x0 + r1 + 2, y0 + 2, x0 + r1 - 2, y0 - 2); Pen.Color:= clblack; end; Timer1.Enabled:=true; end; Paintbox1.Canvas.Draw(0, 0, Bitmap1); end; Das einzige, was mir aufgefallen sind die Zeilen:
Delphi-Quellcode:
Da hier ja des öfteren über das "exit" gelästert wurde ( :wink: ), wäre es sinnvoller diese Zeilen ganz am Anfang zu schrieben, quasi:if IsNotInt(Edit1.Text) or IsNotInt(Edit2.Text) then begin MessageBox(pchar('Bitte geben sie nur Zahlen ein!!!'), '!!! Achtung !!!', MB_OK); // ausgabe einer nachricht wenn im feld keine zahlt steht exit; end else
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin if IsNotInt(Edit1.Text) or IsNotInt(Edit2.Text) then begin MessageBox(pchar('Bitte geben sie nur Zahlen ein!!!'), '!!! Achtung !!!', MB_OK); // ausgabe einer nachricht wenn im feld keine zahlt steht end else begin case ComboBox1.ItemIndex of . . . end; end. |
Re: Hilfe beim Quelletext kürzen
Zitat:
|
Re: Hilfe beim Quelletext kürzen
Wird zwar nicht kürzer, aber dafür übersichtlicher:
Gib den Komponenten sinnvolle Namen. Statt 'Edit1' wäre z.B. edZahl besser, dann weiss man gleich, was da eigentlich rein soll. Funktionen sollten nicht prüfen, ob etwas NICHT zutrifft, sondern, ob etwas zutrifft. Statt 'IsNotInt' sollte man die Funktion in 'IsInteger' umbenennen und das Resultat negieren ("Sind sie sich nicht sicher, das sie keine Zahl nicht eingeben wollen?") |
Re: Hilfe beim Quelletext kürzen
Darf ich mitspielen?
Delphi-Quellcode:
Gruß Hawkeye
procedure TForm1.Button2Click (Sender: TObject);
begin case ComboBox1.ItemIndex of 0 : Timer1.Interval := 60; 1 : Timer1.Interval := 30; 2 : Timer1.Interval := 15; end; Button2.Visible := false; Button4.Visible := true; if winkel > 360 then winkel := 0; if TryStrToInt(edit1.Text, r1) and TryStrToInt(edit2.Text, r2) then begin z := r1 + 2 * r2; if (z > 200) and (MessageDlg('Soll wirklich gemalt werden?', mtInformation , [mbYes, mbNo], 0) <> mrYes) then begin Edit1.text := '50'; Edit2.Text := '10'; Button2.Visible := true; Button4.Visible := false; end else begin with Bitmap1.Canvas do begin Ellipse (x0 - r1, y0 - r1 ,x0 + r1, y0 + r1); // zentraler Kreis Ellipse (x0 + r1, y0 + r2 ,x0 + r1 + 2 * r2, y0 - r2); // außen Kreis Pen.Color := clred; Ellipse(x0 + r1 + 2, y0 + 2, x0 + r1 - 2, y0 - 2); Pen.Color := clblack; end; timer1.Enabled := true; end; paintbox1.Canvas.Draw (0, 0, bitmap1); end else // ausgabe einer nachricht wenn im feld keine zahlt steht application.MessageBox(pchar('Bitte geben sie nur Zahlen ein!'), '!!! Achtung !!!', MB_OK); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 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