![]() |
OnMouseDown überschreiben
Schönen guten Abend zusammen,
wie man schon aus meiner Fragestellung erkennen kann, möchte ich das OnMouseDown Event einer Klasse überschreiben. Nur wie genau geht das? An sich ist es ja keine procedure, sondern eine property, oder sehe ich das falsch? Mit
Delphi-Quellcode:
klappt es ja nicht, da er die OnMouseDown procedure in der Oberklasse nicht finden kann. (logisch, weil es ja eine property ist...)
procedure OnMouseDown({...}); override;
Ich hoffe ihr könnt mir helfen ;) Gruß, |
Re: OnMouseDown überschreiben
offizieller Weg:
Delphi-Quellcode:
das kannst du im OnCreate machen
OnMouseDown := DeineEreignisProzedur;
oder du fänngst direkt die Windowsnachricten ab (z.B. für LinkeMauszaste)
Delphi-Quellcode:
procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
|
Re: OnMouseDown überschreiben
TControl verfügt auch über eine protected-Methode MouseDown.
|
Re: OnMouseDown überschreiben
Hintergrund ist das ich dabei bin TPanel abzuleiten. Dabei möchte ich halt das sich das Panel genau so verhält wie ein Button. Also rein visuell gesehen. Daher macht ja dein "offizieller Weg" wenig sinn, wenn das nur im Konstruktor aufgerufen wird. Geht das denn nicht einfacher? :gruebel:
In c# ("Hust^^") funktioniert es über meine zu erst erwähnte Methode. |
Re: OnMouseDown überschreiben
Dann nimm doch den zweiten Weg, indem Du auf WM_LBUTTONDOWN bzw. WM_LBUTTONUP reagierst.
|
Re: OnMouseDown überschreiben
Alles klar, funktioniert super ;)
Danke :thumb: |
Re: OnMouseDown überschreiben
Leider muss ich meinen letzten Beitrag revidieren. Sobald ich einen Doppelklick auf mein erzeugtes Panel mache, hängt sich das Programm auf. Jemand eine Idee woran das liegen kann?
|
Re: OnMouseDown überschreiben
Bist Du einmal durchgesteppt? Ansonsten einfach mal in den Quellcode der Elternkomponente bzw. von TControl schauen, wie das da gemacht wird (der sollte bei der Architect-Edition ja dabei sein :mrgreen:).
|
Re: OnMouseDown überschreiben
Jo, durchdebuggt ist das ganze. Konnte aber nichts merkwürdiges dabei erkennen. Dann schau ich mir mal TControl genauer an. Hätte ja sein können das einer eine direkte lösung kennt. :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 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