Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DateTimePicker MouseClick auf SpinButton abfragen (https://www.delphipraxis.net/31980-datetimepicker-mouseclick-auf-spinbutton-abfragen.html)

Gundelphi 16. Okt 2004 15:57


DateTimePicker MouseClick auf SpinButton abfragen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
wie könnte ich den MouseClick auf das SpinButton beim DateTimePicker, mit der Eigenschaft Kind = dtkTime, abfragen (SpinButton rauf oder SpinButton runter angeklickt)?

Das OnClick-Ereignis wird nur ausgelöst wenn auf das Editierfeld geklickt wird und nicht wenn auf die SpinButtons geklickt wird.

Stevie 18. Okt 2004 16:44

Re: DateTimePicker MouseClick auf SpinButton abfragen
 
Scheint ziemlich schwierig zu sein, hab jedenfalls keine Windows-Message dafür gefunden, weil das Control das irgendwie intern macht, aber versuchs doch man mit OnChange, wenn du nämlich auf die Buttons klickst, dann ändert sich der Wert. Über die Mausposition könntest du gucken, ob die über dem Spinbutton sind...

Gundelphi 20. Okt 2004 09:17

Re: DateTimePicker MouseClick auf SpinButton abfragen
 
Danke für den Hinweis!
Ich habe es mittlerweile über das OnChange-Ereignis versucht. Jedoch löst eine manuelle Eingabe über das Keyboard auch ein OnChange-Ereignis aus. Mir fehlt leider noch eine Routine zur Feststellung der Mausposition. - Könntest Du mir dazu einen Tipp geben?

Dax 20. Okt 2004 09:19

Re: DateTimePicker MouseClick auf SpinButton abfragen
 
MSDN-Library durchsuchenGetCursorPos liefert die Position der Maus.
Aber es gebt evt. einen Workaround für OnChange: eine Vhar-Variable, die das letzte eingegebene Zeichen des Edits speichert und gelöscht, wenn das Edit-Control den Focus verliert..

Gundelphi 20. Okt 2004 12:31

Re: DateTimePicker MouseClick auf SpinButton abfragen
 
habe mein Problem zufriedenstellend lösen können:

Im OnChange-Ereignis vom Picker die Funktion GetKeyState() aufrufen und sie liefert nach folgender Syntax einen negativen Wert zurück wenn die linke Maustaste betätigt ist:

Delphi-Quellcode:
if GetKeyState(VK_LBUTTON) < 0 then //gedrückt
  MausKlick := true
else
  MausKlick := false;
Vielen Dank an Stevie und Dax!


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