Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zur Laufzeit erzeugt (onemousedown?) (https://www.delphipraxis.net/142455-zur-laufzeit-erzeugt-onemousedown.html)

Detrox 28. Okt 2009 14:31


Zur Laufzeit erzeugt (onemousedown?)
 
Hi,

Ich hab ein kleines Problem,

Ich erzeuge ein Image zur Laufzeit.

wie kann ich diesem ein onemousedown Ereignis zuweisen?

LG

alleinherrscher 28. Okt 2009 14:38

Re: Zur Laufzeit erzeugt (onemousedown?)
 
Delphi-Quellcode:
  private
    { Private-Deklarationen }
    procedure MyOnMouseDownProcedure(Sender:TObject;Button:TMouseButton;Shift:TShiftState;x,y:integer);

Delphi-Quellcode:
procedure TForm1.MyOnMouseDownProcedure(Sender:TObject;Button:TMouseButton;Shift:TShiftState;x,y:integer);
begin

// Dein Source Code

end;

procedure TForm1.ErzeugeMeinImage;
var
MyImage:TImage;
begin

MyImage:=TImage.create(self);

with MyImage do
 begin
   width:=50;
   height:=50;
   top:=10;
   left:=10;
   parent:=self;
   OnMouseDown:=MyOnMouseDownProcedure;
                                           
 end;
end;

Detrox 28. Okt 2009 15:05

Re: Zur Laufzeit erzeugt (onemousedown?)
 
Danke :)

Detrox 28. Okt 2009 17:54

Re: Zur Laufzeit erzeugt (onemousedown?)
 
Ich hätte da noch eine Frage:

Da das Bild erst zur Laufzeit erzeugt wird, kann ich diesem ja nichts zuweisen.

Also ich erstelle das Bild mit dem Namen "test" zur Laufzeit:
Delphi-Quellcode:
Nickbild:= TImage.Create(self);
Nickbild.name:='geher';
Nickbild.show;
Ein Timer soll dieses jede Sekunde 1 Pixel bewegen, nur wie spreche ich es an, den name der Komponente kennt Delphi erst nach dem Start.

LG

sirius 28. Okt 2009 17:55

Re: Zur Laufzeit erzeugt (onemousedown?)
 
Na mit Nickkbild, was denn sonst. Und einen Namen brauchst du eigentlich nicht vergeben.

Detrox 28. Okt 2009 18:13

Re: Zur Laufzeit erzeugt (onemousedown?)
 
Die Procedur timer ..

kennt aber Nickbild noch nicht !

verstehst du?

DeddyH 28. Okt 2009 18:15

Re: Zur Laufzeit erzeugt (onemousedown?)
 
Hä? Der Timer wird dann gestartet, wenn das Bild erzeugt wurde, dann sollte er es auch kennen. Das Bild wiederum muss vom Timer doch gar nichts wissen.

Detrox 28. Okt 2009 18:16

Re: Zur Laufzeit erzeugt (onemousedown?)
 
Hier mal der Code mit du weist was ich meine:

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
Nickbild:TImage;
begin
  Nickbild:= TImage.Create(self);
  Nickbild.Parent := Form1;
  Nickbild.picture.LoadFromFile('taler.gif');
  Nickbild.show;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Nickbild.left:=Nickbild.left+2; <---- Nickbild erkennt er nicht kann also garnicht erst starten
end;
end.

DeddyH 28. Okt 2009 18:18

Re: Zur Laufzeit erzeugt (onemousedown?)
 
Ja, wenn man Nickbild als lokale Variable deklariert, ist sie anschließend nicht mehr bekannt. Mach mal ein privates Feld Deiner Form daraus.


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