AGB  ·  Datenschutz  ·  Impressum  







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

Hilfe beim Quelletext kürzen

Ein Thema von Langa · begonnen am 19. Apr 2006 · letzter Beitrag vom 20. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
Langa

Registriert seit: 10. Apr 2006
Ort: Dresden
24 Beiträge
 
Delphi 6 Enterprise
 
#1

Hilfe beim Quelletext kürzen

  Alt 19. Apr 2006, 10:19
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;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Hilfe beim Quelletext kürzen

  Alt 19. Apr 2006, 10:34
Das form1 solltest du weglassen, da form1 die Bezeichnug einer Instanz von TForm1 ist.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Hilfe beim Quelletext kürzen

  Alt 19. Apr 2006, 10:47
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
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

Re: Hilfe beim Quelletext kürzen

  Alt 19. Apr 2006, 10:56
Zitat von mkinzler:
Das form1 solltest du weglassen, da form1 die Bezeichnug einer Instanz von TForm1 ist.
Das ist wohl war, wenn du es unbedingt angeben willst, dann bitte auch konsequent ... beim Timer und der PaintBox ist es ja auch nicht da.

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];
      ...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#5

Re: Hilfe beim Quelletext kürzen

  Alt 19. Apr 2006, 11:05
Das

pchar('Bitte geben sie nur Zahlen ein!!!') kann man imho einfach Weglassen. Zumindest mache ich das so.

mfG

Markus
Markus
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: Hilfe beim Quelletext kürzen

  Alt 19. Apr 2006, 11:06
Zitat von himitsu:
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];
      ...
oder so:
Timer1.Interval := 60 div IntPower(2,ComboBox1.ItemIndex); ansonsten ist da glaub ich nicht viel zu kürzen...
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von GimbaR
GimbaR

Registriert seit: 17. Apr 2004
Ort: Weltmetropole Rostock ;)
134 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Hilfe beim Quelletext kürzen

  Alt 19. Apr 2006, 11:07
Ich hab mir mal die Freiheit genommen und den Quelltext mal nach meinen Vorstellungen formatiert, um deine Frage zu beantworten.

Delphi-Quellcode:
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;
Aber ehrlich gesagt, wüsste ich nicht was man da kürzen sollte
Das einzige, was mir aufgefallen sind die Zeilen:
Delphi-Quellcode:
 
  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
Da hier ja des öfteren über das "exit" gelästert wurde ( ), wäre es sinnvoller diese Zeilen ganz am Anfang zu schrieben, quasi:
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.
Jonas
Bei dem Tempo ist es nur noch eine Frage der Zeit bis SSchäuble verlangt allen deutschen Bürgern ein Halsband zur ständigen Überwachung zu verpassen...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Hilfe beim Quelletext kürzen

  Alt 19. Apr 2006, 11:16
Zitat von himitsu:
Das ist wohl war, wenn du es unbedingt angeben willst, dann bitte auch konsequent ... beim Timer und der PaintBox ist es ja auch nicht da.
Dann aber als TForm1 und nicht als form1
Markus Kinzler
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Hilfe beim Quelletext kürzen

  Alt 19. Apr 2006, 11:19
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?")
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Hilfe beim Quelletext kürzen

  Alt 19. Apr 2006, 11:20
Darf ich mitspielen?

Delphi-Quellcode:
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;
Gruß Hawkeye
  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 09:51 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