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 DblClick-Erreignis einer Komponente abfangen (https://www.delphipraxis.net/142869-dblclick-erreignis-einer-komponente-abfangen.html)

padavan 5. Nov 2009 07:34


DblClick-Erreignis einer Komponente abfangen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen,

ich habe ein Verständnisproblem, wie ich den Doppelclick einer benutzten Komponente abfangen kann.

Folgendes habe ich bereits umgesetzt:

Habe eine Komponente 'TmyMachine' geschrieben welche sich von TPanel ableitet.
Soweit so gut. Diese TmyMachine habe ich in einem anderen Formular benutzt. Ich erzeuge n Instanzen dieser Klasse, je nachdem wieviel gebraucht werden. Dazu benutze ich eine TObjectlist. Dieser füge ich dann dynamisch die TmyMachine Objekte hinzu.

Delphi-Quellcode:
type
  TmyForm = class(TForm)
...
private
    fMachines: TObjectlist;

...

fmyMachines.Add(TmyMachine.Create(self, parameter, usw));
...
(fmyMachines.Last as TmyMachine).Show;
Wenn ich nun in dem Formular, in welchem jetzt diverse Instanzen von TmyMachine liegen, einen Doppelklick auf eine dieser myMachines mache, möchte ich das Doppelklick Erreigniss in der Form bearbeiten und nicht im Klassencode von TmyMachine. Also muss ich doch den Eventhanlder von TmyMachine beim Erzeugen des jeweiligen Objekts irgenwie in mein Formular bekommen. Nur wie stelle ich das an?

Wenn super, wenn mir jemand helfen könnte.

Danke schon mal
Padavan

PS: Im Anhang habe ich mir ein mini Beispiel gemacht, bei welchem ich das Grundsätzlich hinkriege, aber eben nicht dynamisch und schon gar nicht aus einer anderen Unit...

sirius 5. Nov 2009 07:38

Re: DblClick-Erreignis einer Komponente abfangen
 
Delphi-Quellcode:
(fmyMachines.Last as TmyMachine).onDblClick:=methode aus FormX

padavan 5. Nov 2009 08:40

Re: DblClick-Erreignis einer Komponente abfangen
 
Vielen vielen Dank,

zwischenzeitlich war es mir auch aufgefallen.
Manchmal muss man es einfach mal "laut denken".

Gruß
Padavan

padavan 5. Nov 2009 09:56

Re: DblClick-Erreignis einer Komponente abfangen
 
Hm,

ursprungsproblem zwar gelöst, aber da kommt schon das nächste.

Gleiche Bausstelle, allerdings benötige ich jetzt noch OnMouseDown.

Delphi-Quellcode:
(fmyMachines.Last as TmyMachine).OnMouseDown := myMachineMouseDown;
Wenn ich gleiches mit Schema F durchziehe meckert der Delphi mit
Zitat:

Incompatible types: 'TObject' and 'TMouseButton'

Code in TmyMachine

Delphi-Quellcode:
protected
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X: Integer; Y: Integer); override;

DeddyH 5. Nov 2009 10:00

Re: DblClick-Erreignis einer Komponente abfangen
 
Der Sender-Parameter fehlt.


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