Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Innerhalb einer Form alle Mouseclicks abfangen (https://www.delphipraxis.net/58593-innerhalb-einer-form-alle-mouseclicks-abfangen.html)

Sharky 9. Dez 2005 11:23


Innerhalb einer Form alle Mouseclicks abfangen
 
Hai ihr,

gibt es eine Möglichkeit alle Mausklicks in meiner Form abzufangen und je nach Situation darauf zu reagieren.

Genau möchte ich folgendes erreichen.
Wenn mein Programm mit einem bestimmten Parameter gestartet wurde und bei gedrückter Ctrl-Taste auf ein Object (Label, Button, Gourpbox usw. also alles was eine Caption hat) geklickt wird soll eine bestimmte Aktion durchgeführt werden.
Wenn die Ctrl-Taste nicht gedrückt ist soll der Mausklick einfach an die Komponente weitergeleitet werden und von dieser bearbeitet werden.

Ich hoffe ich konnte einigermassen erklären was ich machen möchte.


P.S.: Ich könnte natürlich für alle "beteiligten" ein entsprechendes OnClick erzeugen. Aber ich würde es halt gerne mal auf diese Weise versuchen.

Vjay 9. Dez 2005 11:44

Re: Innerhalb einer Form alle Mouseclicks abfangen
 
Hey,

hast du es schon über TApplication.OnMessage versucht?

Ansonsten sollte dies über SetWindowsHookEx möglich sein.

Gruss

Sharky 9. Dez 2005 16:18

Re: Innerhalb einer Form alle Mouseclicks abfangen
 
Hai Vjay,

danke für den Ratschlag. Jetzt müsste ich nur noch wissen welche Message ich für einen klick mit der linken Maustaste abfragen muss. *g* Ich und API-Zeugs. Zwei Welten treffen auf einander. :stupid:

marabu 9. Dez 2005 16:32

Re: Innerhalb einer Form alle Mouseclicks abfangen
 
Hallo Sharky,

WM_LBUTTONUP
WM_RBUTTONDOWN
WM_MBUTTONDBLCLK

und ihre Ergänzungen dürften die Messages sein, die du suchst. Wenn du die Quelle der Unit Controls einsehen kannst, dann dort bei TControl nachsehen. Oder im Win32 SDK unter Mouse Input Messages.

Grüße vom marabu

Sharky 9. Dez 2005 16:47

Re: Innerhalb einer Form alle Mouseclicks abfangen
 
Hai marabu,

danke für die schnelle Antwort. WM_LButtonDown hatte ich gefunden. Aber ich Dummhai habe nicht Msg.Message ausgewertet sondern Msg.lParam :oops:

Aber jetzt geht es schon einmal so wie ich es mir vorstelle :-D


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