![]() |
dynamische Timage onclick
Ich hab jetzt Timages zur laufzeit erstellt in einer prozedur;
Delphi-Quellcode:
jetzt möcht ich aber dass jedes bild bei onclick etwas anderes macht. kann ich dass da noch irgendwie zuweisen? Ich bräuchte das s : string dass zu jeden bild zugewiesen wordn ist und es soll dann eine prozedur aufrufen die für jeden gleich ist. ich muss eigentlich nur den namen des bildes wissen.
s:=stacktostring(p);
form1.bild[i]:= TImage.Create(form1); form1.bild[i].Parent:=form1; form1.bild[i].Left:=100+(i*20); form1.bild[i].Top:=250; form1.bild[i].Width:=60; form1.bild[i].Height:=90; form1.bild[i].Picture.LoadFromFile('C:\'+s+'.JPG'); form1.bild[i].Visible:=true; vor allem versteh ich nicht wo ich das onclick reinschreiben muss. denn bei normalen Timage gibts ja die events onclick. aber bei diesen ist das etwas anders.. ich kenn mich nicht so aus bitte um hilfe MFG |
Re: dynamische Timage onclick
Du könntest in dieser Schleife auch gleich allen Images-Kompos die gleich eOnClick-Prozedur zuweisen, und auch noch den Tag der Image-Kompos auf das aktuelle i setzen. Dann kannst du im Eventhandler überprüfen, welchen Tag die Kompo hat und je anchdem handeln.
|
Re: dynamische Timage onclick
Hallo simonko :hi:
das geht eigentlich ganz einfach:
Delphi-Quellcode:
mfg
procedure MyImageClick(Sender: TObject);
begin with Sender as TImage do begin ShowMessage(Name); //oder if Tag = 25 then DoSomething; //oder mach was anderes mit deinem Bild end; end; ... form1.bild[i].OnClick := MyImageClick(Sender: TObject); Christian |
Re: dynamische Timage onclick
Soweit ich weis, geht die Zuweisung dann aber so:
Delphi-Quellcode:
;)
form1.bild[i].OnClick := MyImageClick;
|
Re: dynamische Timage onclick
Daraus wird nichts.
Delphi-Quellcode:
und ihr bietet nur
TNotifyEvent = procedure (Sender:TObject) of object
Delphi-Quellcode:
Es muss also so deklariert sein:
TNotifyEvent = procedure (Sender:TObject);
Delphi-Quellcode:
EDIT: und so sollte man die Images erstellen:
procedure TFomr1.MyOnClick(Sender:TObject);
begin case TComponent(Sender).Tag of 1:; 2:; // usw.... end; end;
Delphi-Quellcode:
procedure TForm1.ErstelleImages(ImgCount:integer);
begin SetLength( bild, imgCount); for i:=0 to ImgCoun-1 do begin bild[i] := Timage.Create(Self); with Bild[i] do begin Parent := Self; // andere eigenschaften zuweisen Tag := i; // <<<<<-------SEHR WICHTIG !!! OnClick := MyOnClick; end; end; end; |
Re: dynamische Timage onclick
Und dann nehmen wir am besten gleich eine Typed-Object-List und ausserdem schreiben wir z.B. statt TFomr1 TForm1 ;)
|
Re: dynamische Timage onclick
Zitat:
mfg Christian //Edit: Hm.. da waren wohl noch einige Posts dazwischen. :oops: Ich glaub die waren auch etwas ausführlicher. :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 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