![]() |
Elegante Lösung für While-LButton-Pressed-Loop
Hallo!
Gibt es eine elegante Lösung für das Problem eines getriggerten LButtonDown? Folgende Zielstellung: Eine Komponente vergleichbar mit SpinEdit, abgeleitet von TWinControl. Zwei Buttons (allerdings gefaked, nur per StyleServices auf Canvas gepinselte Bildchen). Wenn man auf die Up- bzw. Down-Buttons klickt und gedrückt hält, soll ein Wert hochgezählt werden. Im originalen TSpinEdit ist das letztendlich über Timer gelöst. Nur frage ich mich: Ist das die einzige (vernünftige) Möglichkeit? Gibt es nicht vllt. eine Art wiederkehrender Windows-Message? Grüße Cody |
AW: Elegante Lösung für While-LButton-Pressed-Loop
Zitat:
|
AW: Elegante Lösung für While-LButton-Pressed-Loop
Zitat:
|
AW: Elegante Lösung für While-LButton-Pressed-Loop
Nein, da auch die Hardware nur zwei Events sendet, Button down und Button up, erzeugt auch Windows keine weiteren Botschaften. Da bleibt dann nur ein Timer als Alternative.
...:cat:... |
AW: Elegante Lösung für While-LButton-Pressed-Loop
in der winproc...
Delphi-Quellcode:
im Timer:
case
WM_LBUTTONDOWN: begin gbMouseDown := True; StartTimer; end; WM_LBUTTONUP: gbMouseDown := False; end;
Delphi-Quellcode:
Anstatt Timer ginge auch ein Thread, würde mir besser gefallen ;-)
if gbMouseDown then begin
inc(giCounter); end else begin KillTimer; end; |
AW: Elegante Lösung für While-LButton-Pressed-Loop
Zitat:
Da fällt mir das Keyboard ein, und wenn ich mich recht erinnere, kann das fortlaufende Events generieren. Gruß K-H |
AW: Elegante Lösung für While-LButton-Pressed-Loop
Hier geht es aber um den linken Mouse-Button (genauer gesagt, der in den Mouse-Settings dafür eingestellt wurde):
Zitat:
|
AW: Elegante Lösung für While-LButton-Pressed-Loop
Zitat:
...:cat:... |
AW: Elegante Lösung für While-LButton-Pressed-Loop
Liste der Anhänge anzeigen (Anzahl: 1)
Ok, das Komponentchen ist fertig. Mit zweistufig schnellem Spinbutton-Repeat und absolut
![]() Die Ideenvorlage dafür war der ![]() Die Quellcodes kommen auch noch, will ich nur noch vorher etwas aufhübschen... |
AW: Elegante Lösung für While-LButton-Pressed-Loop
Sieht schick aus :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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 by Thomas Breitkreuz