![]() |
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:
Die globalen Variablen sehen so aus:
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
Delphi-Quellcode:
Kann mir irgendwer sagen was ich da nicht beachtet hab?
x,y,kreis,
x1,y1,durchlauf,umdrehung :integer; laenge:real; Mittelpunktx, Mittelpunkty :integer; winkel:real; MfG Daniel |
Re: Code in Prozedur einfügen
Was genau geschieht denn? Kommt eine Fehlermeldung?
|
Re: Code in Prozedur einfügen
Hi!
Was geht denn nicht? Kommen Fehlermeldungen etc? Ciao fkerber |
Re: Code in Prozedur einfügen
Nein, es passiert einfach nichts!
Ich rufe die Prozedur dann durch einen knopf mit
Delphi-Quellcode:
auf, aber die Prozedur selbst wird nicht durchlaufen.
paint;
MfG Daniel |
Re: Code in Prozedur einfügen
Kannst du Haltepunkte in der Prozedur setzen?
|
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: |
Re: Code in Prozedur einfügen
Delphi-Quellcode:
aber was genau willst du machen?
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; |
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 |
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. |
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 09:19 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