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/)
-   -   Delphi Doppelklick auf Titelleiste erkennen (https://www.delphipraxis.net/24338-doppelklick-auf-titelleiste-erkennen.html)

CalganX 19. Jun 2004 14:28


Doppelklick auf Titelleiste erkennen
 
Hi,
gibt es eine Möglichkeit per WinAPI den Doppelklick auf die Titelleiste eines Fensters zu erkennen?

Zwar kann ich einen Doppelklick darauf mit Hilfe der Message WM_DBLCLICK erkennen, die Frage ist aber, wie ich differenzieren kann wohin geklickt wurde.

Chris

p0w3r5tr34m3r 19. Jun 2004 14:31

Re: Doppelklick auf Titelleiste erkennen
 
ich denke mal das du da mit Hooks arbeiten musst und dich nicht unbedingt auf die WinApi stützen kannst...
bin mir aber net 100%ig sicher...


MfG Powerstreamer

CalganX 19. Jun 2004 14:39

Re: Doppelklick auf Titelleiste erkennen
 
Hi,
:shock: das wage ich aber zu bezweifeln?!
Wenn ich meine "Erfahrung" (*hüstel*) mit der WinAPI richtig deute wäre das mit Kanonen auf Spatzen schießen. ;)
Da muss es doch eine andere Möglichkeit geben. :gruebel:

Chris

TStringlist 19. Jun 2004 14:55

Re: Doppelklick auf Titelleiste erkennen
 
meinst du etwa das hier:

Code:
Procedure TForm1.WndProc(var Msg : TMessage);
begin
  if (Msg.Msg = WM_NCLButtonDBLCLK)
  and (Msg.WParam = HTCAPTION)
  then windows.beep(1000,100);
  inherited;
end;

Christian Seehase 19. Jun 2004 21:41

Re: Doppelklick auf Titelleiste erkennen
 
Moin Chris,

oder so:

Delphi-Quellcode:
//...
public
    procedure WMNCBUTTONDBLCLICK(var msg : TMessage); message WM_NCLBUTTONDBLCLK;
//...

procedure TForm1.WMNCBUTTONDBLCLICK(var msg: TMessage);
begin
  self.Caption := DateTimeToStr(now);
  inherited;
end;

CalganX 19. Jun 2004 21:43

Re: Doppelklick auf Titelleiste erkennen
 
Hi,
danke. ;)
Genau das suchte ich. :)

@Christian: ist ja im Prinzip das gleiche, nur dass ich bei deinem Source die WndProc nicht überschreiben muss. ;) Finde ich eigentlich auch besser. :lol: So hätte ich es aber sowieso dann geschrieben. :)

Chris

Christian Seehase 19. Jun 2004 21:48

Re: Doppelklick auf Titelleiste erkennen
 
Moin Chris,

um ganz sicher zu gehen, solltest Du allerding auch noch die Prüfung auf HTCAPTION mit einbauen, die TStringList vorgeschlagen hat, da ein Doppelclick im Hauptmenü das Ereignis auch auslöst.

TStringlist 19. Jun 2004 23:04

Re: Doppelklick auf Titelleiste erkennen
 
> ..da ein Doppelclick im Hauptmenü das Ereignis auch auslöst.

...plus natürlich auch noch einige andere Doppelklicks, ...und zwar überall darauf, welches durch den theoretisch möglichen Wert von nHittest (siehe WM_NCHITTEST) sonst auch noch im WParam abgefragt werden kann (...eben auf den ganzen differenzierten NonClient-Bereich).

...nur, wenn hier oder da mal kein MainMenue da sein sollte. :tongue:


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