AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Doppelklick auf Titelleiste erkennen
Thema durchsuchen
Ansicht
Themen-Optionen

Doppelklick auf Titelleiste erkennen

Ein Thema von CalganX · begonnen am 19. Jun 2004 · letzter Beitrag vom 20. Jun 2004
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Doppelklick auf Titelleiste erkennen

  Alt 19. Jun 2004, 15:28
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
  Mit Zitat antworten Zitat
Benutzerbild von p0w3r5tr34m3r
p0w3r5tr34m3r

Registriert seit: 18. Aug 2003
Ort: Monheim am Rhein
153 Beiträge
 
RAD-Studio 2009 Pro
 
#2

Re: Doppelklick auf Titelleiste erkennen

  Alt 19. Jun 2004, 15:31
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
Florian Cülter
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Doppelklick auf Titelleiste erkennen

  Alt 19. Jun 2004, 15:39
Hi,
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.

Chris
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Doppelklick auf Titelleiste erkennen

  Alt 19. Jun 2004, 15:55
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;
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Doppelklick auf Titelleiste erkennen

  Alt 19. Jun 2004, 22:41
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;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Doppelklick auf Titelleiste erkennen

  Alt 19. Jun 2004, 22:43
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. So hätte ich es aber sowieso dann geschrieben.

Chris
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Doppelklick auf Titelleiste erkennen

  Alt 19. Jun 2004, 22:48
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Doppelklick auf Titelleiste erkennen

  Alt 20. Jun 2004, 00:04
> ..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.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 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