Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bei Maus klich Timer stoppen (https://www.delphipraxis.net/40230-bei-maus-klich-timer-stoppen.html)

citybreaker 12. Feb 2005 19:30


Bei Maus klich Timer stoppen
 
Hallo,
ich möchte sobald die linkemaustaste gedrückt
wird meinen Timer stoppen. Alerdings soll es
egal sein wo die Maus geklickt wird da ich eine
Art Color Picker progammieren will. Ich denke
das OnMouseDown deshalb nicht in Frage kommt und
weiß nun keine weitere möglichkeit.

toms 12. Feb 2005 19:32

Re: Bei Maus klich Timer stoppen
 
Hi,

Du koenntest SetCapture() verwenden. Es wird ein OnMouseUp ausgeloest wenn die Maus losgelassen wird.
Eignet sich gut fuer einen Color Picker.

malo 12. Feb 2005 20:01

Re: Bei Maus klich Timer stoppen
 
Du könntest versuchen, im OnTimer die Windows-Message abzufangen, die bei einem Klick gesendet wird. Such mal im Forum danach, da wirst du sicher fündig ;)

citybreaker 13. Feb 2005 12:35

Re: Bei Maus klich Timer stoppen
 
Ich hab mal im Forum gesucht, aber nicht wirklick was gefunden
was sich eignet.

jfheins 13. Feb 2005 12:55

Re: Bei Maus klich Timer stoppen
 
Colorpicker ?
Ich hab' mal einen gemacht, mit nem Image und onMouseMove (im OnClick dann die Farbe gespeichert) ...

TStringlist 13. Feb 2005 13:34

Re: Bei Maus klich Timer stoppen
 
Wenn du ein TApplicationEvents-Objekt einbaust, müsste das eigentlich gehen. Damit bekämst du dann alle MouseDown-Events die auf der Form insgesamt niedergehen. ...Nötig hierfür wäre dann nur noch mehr ein entsprechender ApplicationEvents1.OnMessage-Eventhandler und darin dann auf wm_lbuttondown prüfen.

citybreaker 13. Feb 2005 13:38

Re: Bei Maus klich Timer stoppen
 
Und wie funktioniert das?

TStringlist 13. Feb 2005 15:00

Re: Bei Maus klich Timer stoppen
 
(?). Das Teil einfach auf die Form ziehen und dann im OI einen Doppelklick rechts neben die OnMessage-Property. In diesen (so dann erzeugten) Eventhandler werden dann quasi sämtliche Messages zuerst hin/umgeleitet, ...jene welche nämlich ansonsten gleich an die WndProc der Form bzw. die WndProcs der einzelnen Controls darauf gehen würden. Dort könntest du dann also auf WM_LButtonDown prüfen und entsprechend reagieren...


Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if Msg.message = wm_lbuttondown then begin
    ...
  end;
end;

citybreaker 13. Feb 2005 16:15

Re: Bei Maus klich Timer stoppen
 
Zitat:

Zitat von TStringlist
(?). Das Teil einfach auf die Form ziehen und dann im OI einen Doppelklick rechts neben die OnMessage-Property. In diesen (so dann erzeugten) Eventhandler werden dann quasi sämtliche Messages zuerst hin/umgeleitet, ...jene welche nämlich ansonsten gleich an die WndProc der Form bzw. die WndProcs der einzelnen Controls darauf gehen würden. Dort könntest du dann also auf WM_LButtonDown prüfen und entsprechend reagieren...


Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if Msg.message = wm_lbuttondown then begin
    ...
  end;
end;

Hab das jetzt mal ausprobiert, alerdings funktioniert auch das nur inerhalb der Anwendung.

Binärbaum 13. Feb 2005 16:27

Re: Bei Maus klich Timer stoppen
 
Zitat:

Zitat von citybreaker
...
Hab das jetzt mal ausprobiert, alerdings funktioniert auch das nur innerhalb der Anwendung.

Das ist ja logisch, dass es nur innerhalb der Anwendung funktioniert, da ApplicationEvents1Message ja nur die Nachrichten an die eigene Anwendung abfängt. Wenn es auf dem gesamten Desktop funktionieren soll, muss man alle Messages abfangen, nicht nur die der eigenen Anwendung.

MfG
Binärbaum


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz