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 Eigene Komp.: Ereignis implementieren UND veröffentlichen (https://www.delphipraxis.net/149400-eigene-komp-ereignis-implementieren-und-veroeffentlichen.html)

Rob09 20. Mär 2010 15:37


Eigene Komp.: Ereignis implementieren UND veröffentlichen
 
Hi! Mein Problem:

Ich bin gerade dabei, eine eigene Komponente zu entwickeln. Ich leite sie ab von TCustomControl. Nun muss bei einem MouseDown auf die Komponente eine Prozedur (DoMouseDown) ausgeführt werden. Meine bisherige Lösung war:

Delphi-Quellcode:
constructor TMyComponent.Create(AOwner: TComponent);
begin
  ...
  Self.OnMouseDown := DoMouseDown;
end;
Mittlerweile ist es aber nötig geworden, dass die Komponente ein OnMouseDown-Ereignis zur Verfügung stellt. Also:

Delphi-Quellcode:
type
  TMyComponent = class(TCustomControl)
  ...
  published
    ...
    property OnMouseDown;
  end;
end;
Jetzt wird aber natürlich bei einem Klick auf die Komponente nur die im Objektinspektor zugewiesene Prozedur aufgerufen. Allerdings soll ja unbedingt (am besten zuerst) DoMouseDown ausgeführt werden.

Falls jemand einen Lösungsvorschlag hat, wäre ich sehr dankbar!

Gruß!
Robert

SirThornberry 20. Mär 2010 15:39

Re: Eigene Komp.: Ereignis implementieren UND veröffentliche
 
On Mousedown ist ja bereits implementiert und anstelle dieses, wie du es wohl bisher gemacht hast, zuzuweisen überschreibt man eigentlich die Methode welche das Mousedown auslöst. Damit hätte sich dein Problem dann auch von selbst erledigt.

Rob09 20. Mär 2010 15:44

Re: Eigene Komp.: Ereignis implementieren UND veröffentliche
 
Hi! Vielen Dank für die schnelle Antwort! Aber welche Methode löst denn das MouseDown aus?

SirThornberry 20. Mär 2010 15:46

Re: Eigene Komp.: Ereignis implementieren UND veröffentliche
 
Da ich leider gerade kein Delphi zur Hand habe könnte ich auch nur raten. Am einfachsten ist es sich mal den Stackcall anzuschauen wo der Aufruf her kommt. Ansonsten tippe ich auf MouseDown oder DoMouseDown etc.

Rob09 20. Mär 2010 16:00

Re: Eigene Komp.: Ereignis implementieren UND veröffentliche
 
So einfach kann es sein ;-) - es ist übrigens MouseDown.

Vielen Dank und schönes WE!
:thumb:
Robert

(PS: Was ist denn eigentlich der Stackcall und wie kann ich ihn mir anschaun?)


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