![]() |
Trackbar verschieben
Hallo,
ich habe Windows 10 und Delphi 11.2. In einem Programm habe ich eine TrackBar. Nun gibt es beiden Events der TrackBar leider kein OnMouseDown und OnMouseUp. Ich möchte aber, das solange der Schieber der TrackBar verschoben wird (linke Maustaste ist gedrückt) in der Prozedure OnChange der TrackBar keine Aktion ausführen. Habe schon hier im Forum geschaut, aber nichts passendes gefunden. Also nochmal: ich will wissen, wenn die Maustaste auf dem Schieberegler gedrückt ist. Kann mir da jemand helfen, am liebstem mit Beispiel-Source. Danke und Gruß Jürgen |
AW: Trackbar verschieben
Delphi-Quellcode:
Bewegen mit den Pfeiltasten? :wink:
// OnChange ... hier ginge es auch, aber du bekommst das Ende nicht mit
procedure TForm1.TrackBar1Change(Sender: TObject); begin Memo1.Lines.Add('Change ' + TrackBar1.Position.ToString); end; // OnTracking (prinzipiell weiß die Trackbar davon, da sie sich im Windows 11 grau malt, aber k.A. ob und wie man diesen Status abfragen könnte) procedure TForm1.TrackBar1Tracking(Sender: TObject); begin if (GetKeyState(VK_LBUTTON) < 0) {or (GetKeyState(VK_LEFT) < 0) or (GetKeyState(VK_RIGHT) < 0)} then // auch VK_UP und VK_DOWN Memo1.Lines.Add('Tracking ' + TrackBar1.Position.ToString + ' MOVING') else Memo1.Lines.Add('Tracking ' + TrackBar1.Position.ToString); end; Vielleicht auch nur einmal GetKeyboardState anstatt mehrerer GetKeyState ... k.A. was schneller/einfacher ist. |
AW: Trackbar verschieben
Hallo Himitsu,
danke für Deine Antwort. Die Lösung klappt aber leider nicht.
Delphi-Quellcode:
Der Wert von GetKeyState(VK_LEFT) ist immer 0,
procedure TForm1.TrackBar1Tracking(Sender: TObject);
begin if (GetKeyState(VK_LEFT) < 0) then begin ......... egal ob ich die linke Maustaste gedrückt habe oder nicht. Was stimmt nicht? Gruß Jürgen |
AW: Trackbar verschieben
VK_LEFT ist die Links-Taste auf der Tastatur.
VK_LBUTTON ist die "linke" Taste auf der Maus. (oder die Rechte, wenn Layout gedreht) Rate mal, warum dieser Teil des Codes erstmal auskommentiert war? :zwinker: Abhängig von der Frage, welche darunter gestellt wurde. :angle2: |
AW: Trackbar verschieben
Eine andere Möglichkeit wäre es, eine eigene Trackbar-Komponente abzuleiten, bei der die beiden Events published sind, z.B. so:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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