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 Toolbutton und Maustaste (https://www.delphipraxis.net/192187-toolbutton-und-maustaste.html)

Mattze 27. Mär 2017 12:49

Toolbutton und Maustaste
 
Hallo,

wie kriegt man im OnMouseMove eines Toolbuttons raus, ob eine Maustaste (z.B. die linke) gedrückt ist?

(Wer jetzt "ssLeft in Shift" meint, liegt für Buttons völlig richtig. Aber beim Toolbutton funktioniert das eben nicht. Auch GetAsyncKeyState(vk_LButton) macht er da nicht!)

(D7 pro unter Win10 64 pro)

Gruß
Mattze

alfold 27. Mär 2017 13:10

AW: Toolbutton und Maustaste
 
Vielleicht mit OnMouseDown vom Toolbutton!?
gruß alfold

Mattze 27. Mär 2017 13:56

AW: Toolbutton und Maustaste
 
Hallo,

danke für die Antwort, aber das ist es nicht.
Ich brauche es nicht irgendwo, sondern in ONMOUSEMOVE.

Man könnte das sicherlich über eine boolsche Variable steuern.
(OnMousDown: LeftBool:=true; OnmouseUp: LeftBool:=false oder so.)
Aber das wollte ich eigentlich vermeiden, weil es mir wie "von hinten durchs Auge" vorkäme.

Gruß
Mattze

Sherlock 27. Mär 2017 15:07

AW: Toolbutton und Maustaste
 
Was willst du erreichen oder genauer: welches von wo bekannte Anwendererlebnis möchtest Du imitieren? Im Prinzip sollte onDragEnter oder onDragOver feuern, sobald die Maus bei gedrückter Taste über eine Komponente fährt. Ich meine aber, daß ohne Drag-Inhalt, nur die Komponente benachrichtigt, über der die Maus beim Mousedown-Zeiptunkt war.

Sherlock

Mattze 27. Mär 2017 15:26

AW: Toolbutton und Maustaste
 
Hallo Sherlock,

auch ein Sherlock kann sich irren!
Das ist nur bei dragmode=dmAutomatic so.
Und genau darum geht es!
Ich muss (oder möchte) das "Draggen und Droppen" per dmManual bei einigen Toolbuttons selber steuern.
Das Click soll aber auch funktionieren.

Dazu muss ich im OnMouseMove das DragBegin(...) starten, aber eben nur, wenn die linke Mousetaste gedrückt ist und sich die Mausposition um ein Delta verschoben hat.
Also muss ich irgendwie rauskriegen, ob die Taste gedrückt ist oder nicht.

Nebenbei: Das ist auch eine prinzipielle Frage. Warum wird im OnMouseMove des Toolbuttons Tshift angeboten, wenn man es nicht sinnvoll benutzen kann?
(Programmiererfaulheit bei Borland? Glaube ich eigentlich nicht!)

Gruß
Mattze


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