![]() |
OnMouseDown-Ereignis bei dynamisch erstelltem Image
Hallo,
ich habe folgendes Problem: In meinem Programm werden Image-Komponenten dynamisch erstellt. Ich habe also ein Array of TImage. Wie kann ich jetzt abfangen, wenn auf eines dieser Images mit der Muas geklickt wurde? Ich will also, wenn jemand auf ein Image klickt etwas mit dem Image anstellen. Wie funktioniert sowas? Kann ich beim createn des Images dem OnMousedown-Event etwas zuweisen? Gruß bender251 |
Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image
Geht genaus wie bei
![]() |
Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image
Im Objekt im Protected-Bereich das einfügen:
Delphi-Quellcode:
in der Implementation das einfuegen
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin inherited; // hier das abarbeiten, was du möchtest end; Und wenn das Image dynamisch erzeugt wird, das ereignis zuweisen
Delphi-Quellcode:
Image1:=TImage.create(self);
Image1.OnMouseDown:=Image1MouseDown; Gerd |
Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image
Im Objekt im Protected-Bereich das einfügen:
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Hallo, erstmal Danke für die Antworten leider weiß ich nicht wo ich einen Protected-Bereich habe. Ich habe einfach in der globalen Variablendeklaration von Form1 ein Array of Timage deklariert und später im Programm dann entsprechend created und weiterbearbeitet. Geht das dann so nicht mehr? Mit Dank im Voraus bender251 |
Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image
Delphi-Quellcode:
Wenn's protected bei dir nicht gibt, dann einfach einfügen.
type
TForm1 = class(TForm) private { Private-Deklarationen } protected { Protected-Deklarationen } procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); public { Public-Deklarationen } end; Zur Not geht's auch im private-Bereich oder public-Bereich Gerd |
Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image
Hallo,
hab jetzt soweit verstanden, wie es funktionieren sollte, aber es funktioniert leider nicht. Ich habe jetzt ein Objekt erstellt und dort im public-Bereich die Funktion eingefügt.
Delphi-Quellcode:
und im Programm dann die einzelnen Images so erstellt:
type tbildimage = class(Timage)
private protected public procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); end;
Delphi-Quellcode:
DIe Funktion sieht so aus:
...
bildteil[i] := tbildimage.Create(Form1); bildteil[i].Parent := Form1; bildteil[i].OnMouseDown := MouseDown; ...
Delphi-Quellcode:
Wenn ich dann versuche das Programm zu compilieren und auszuführen erhalte ich die Meldung, dass procMouseDOwn ein undefinierter Bezeichner sei.
procedure tbildimage.MouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin showmessage('hallo'); end; Ich steh momentan leider auf dem Schlauch. :wall: Gruß bender251 |
Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image
die procedure gehört ja auch zu deiner Form Klasse und nicht zum Image Control
so sollte es passen
Delphi-Quellcode:
TForm1 = class(TForm)
private protected public procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); end; procedure TForm1.MouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin showmessage('hallo'); end; |
Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image
oder aber nochmal drüber nachgedacht .... :)
Delphi-Quellcode:
bildteil[i].OnMouseDown := tbildimage.MouseDown;
|
Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image
Hallo,
ich hatte beide Versionen schonmal ausprobiert. Aber ich kriege die Prozedur procMouseDown nicht angeboten. Also wenn ich
Delphi-Quellcode:
eingebe, dann kommt dieses Programmierhilfefenster mit allen verfügbaren Prozeduren und da bekomme ich nur den Creator angeboten. Und wenn ich manuell die Prozedur hinschreibe kommt wieder der gleiche Fehler.
bildteil[i].OnMouseDown := tbildimage.
Gruß bender251 |
Re: OnMouseDown-Ereignis bei dynamisch erstelltem Image
es wäre besser wenn du mal mehr von deinem code postest weil ich z.B nicht sehe von welcher Klasse du Die images aus erstellst und vorallem sehe ich in deinem Code kein "procMouseDown" :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 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