Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Code in Prozedur einfügen (https://www.delphipraxis.net/16830-code-prozedur-einfuegen.html)

DeadEternity 24. Feb 2004 12:20


Code in Prozedur einfügen
 
Hi Leute,
ich hab mal ein Testprogramm geschrieben, das gestartet wird, wenn man nen knopf drückt.
ich hab das aber nicht als normale prozedur geschrieben, sondern direkt im knopf drin.
Jetzt möcht ich das aber in eine prozedur umwandeln, aber irgendwie funktioniert
das nicht. Was mach ich falsch?
Delphi-Quellcode:
procedure paint;
begin
form1.image1.Canvas.Pen.Color:=clblack;                 form1.image1.Canvas.Pen.Width:=2;                      

  Form1.Image1.Canvas.MoveTo(Mittelpunktx,Mittelpunkty);
  laenge:=100;
  x:=Round(Mittelpunktx+laenge*cos(Winkel));
  y:=Round(Mittelpunkty+laenge*sin(Winkel));
  Form1.Image1.Canvas.MoveTo(x,y);
  Form1.Image1.Canvas.Pixels[x,y]:=clblack;
  Winkel:=Winkel+2*pi/360;

  if (durchlauf <> 0) then                    
    begin
      Form1.Image1.Canvas.LineTo(x1,y1);
    end;

  x1:=x;
  y1:=y;
  durchlauf:=1;
 end
Die globalen Variablen sehen so aus:

Delphi-Quellcode:
x,y,kreis,                        
  x1,y1,durchlauf,umdrehung :integer;
  laenge:real;                      
  Mittelpunktx,                      
  Mittelpunkty :integer;            
  winkel:real;
Kann mir irgendwer sagen was ich da nicht beachtet hab?

MfG Daniel

Cuchulainn 24. Feb 2004 12:34

Re: Code in Prozedur einfügen
 
Was genau geschieht denn? Kommt eine Fehlermeldung?

fkerber 24. Feb 2004 12:34

Re: Code in Prozedur einfügen
 
Hi!

Was geht denn nicht?
Kommen Fehlermeldungen etc?

Ciao fkerber

DeadEternity 24. Feb 2004 12:39

Re: Code in Prozedur einfügen
 
Nein, es passiert einfach nichts!
Ich rufe die Prozedur dann durch einen knopf mit
Delphi-Quellcode:
 paint;
auf, aber die Prozedur selbst wird nicht durchlaufen.

MfG Daniel

Cuchulainn 24. Feb 2004 12:45

Re: Code in Prozedur einfügen
 
Kannst du Haltepunkte in der Prozedur setzen?

Stanlay Hanks 24. Feb 2004 12:45

Re: Code in Prozedur einfügen
 
Ich glaube, dadurch wird nicht deine Prozedur, sondern die Paint Prozedur des Forms auf dem der Button sitzt aufgerufen. Vielleicht solltest du die Prozedur anders nennen :gruebel:

Man liest sich, Stanlay :hi:

Manzoni 24. Feb 2004 12:49

Re: Code in Prozedur einfügen
 
Delphi-Quellcode:
private
  x,y,kreis,                        
  x1,y1,durchlauf,umdrehung :integer;
  laenge:real;                      
  Mittelpunktx,                      
  Mittelpunkty :integer;            
  winkel:real;  
  procedure paint;

...

procedure Form1.paint;
begin
  with Image1 do
  begin
    Canvas.Pen.Color:=clblack;                
    Canvas.Pen.Width:=2;                      
    Canvas.MoveTo(Mittelpunktx,Mittelpunkty);
  end;
  laenge:=100;
  x:=Round(Mittelpunktx+laenge*cos(Winkel));
  y:=Round(Mittelpunkty+laenge*sin(Winkel));
  Image1.Canvas.MoveTo(x,y);
  Image1.Canvas.Pixels[x,y]:=clblack;
  Winkel:=Winkel+2*pi/360;
  if (durchlauf <> 0) then                    
    Image1.Canvas.LineTo(x1,y1);
  x1:=x;
  y1:=y;
  durchlauf:=1;
end;

procedure Form1.Button1Click(Sender : TObject);
begin
  paint;
end;
aber was genau willst du machen?

DeadEternity 24. Feb 2004 12:53

Re: Code in Prozedur einfügen
 
Juhu, du hattest recht!
Ich hab sie einfach umbenannt und jetzt funktionierts!

Von selbst wär ich da nie draufgekommen!
Besten Dank,

MfG Daniel

Robert_G 24. Feb 2004 12:53

Re: Code in Prozedur einfügen
 
Du solltest im Normalfall auf globale Variablen/Prozeduren verzichten.
Wenn du das Ganze unter PRIVATE oder PUBLIC deines Forms deklarierst bekommst du weniger Probleme in anderen Formularen.
Aßerdem sollte man seine Methoden/Variablen nie wie Standardmethoden benennen.

DeadEternity 24. Feb 2004 13:00

Re: Code in Prozedur einfügen
 
Ja, aber in dem Fall gehts nicht anders.
wenn ich gewusst hätte, dass das ne standardprozedur is, hätte ich den namen nicht verwendet.

MfG Daniel


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 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