AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Trackbar verschieben

Ein Thema von juelin · begonnen am 6. Jun 2024 · letzter Beitrag vom 7. Jun 2024
Antwort Antwort
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
142 Beiträge
 
Delphi XE5 Professional
 
#1

Trackbar verschieben

  Alt 6. Jun 2024, 16:28
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
Jürgen Linder

Geändert von juelin ( 6. Jun 2024 um 16:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#2

AW: Trackbar verschieben

  Alt 6. Jun 2024, 16:55
Delphi-Quellcode:
// 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;
Bewegen mit den Pfeiltasten?


Vielleicht auch nur einmal GetKeyboardState anstatt mehrerer GetKeyState ... k.A. was schneller/einfacher ist.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 6. Jun 2024 um 16:59 Uhr)
  Mit Zitat antworten Zitat
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
142 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Trackbar verschieben

  Alt 6. Jun 2024, 18:33
Hallo Himitsu,
danke für Deine Antwort.
Die Lösung klappt aber leider nicht.
Delphi-Quellcode:
procedure TForm1.TrackBar1Tracking(Sender: TObject);
begin
    if (GetKeyState(VK_LEFT) < 0) then
    begin
.........
Der Wert von GetKeyState(VK_LEFT) ist immer 0,
egal ob ich die linke Maustaste gedrückt habe oder nicht.
Was stimmt nicht?
Gruß
Jürgen
Jürgen Linder
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#4

AW: Trackbar verschieben

  Alt 6. Jun 2024, 18:36
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?
Abhängig von der Frage, welche darunter gestellt wurde.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 6. Jun 2024 um 18:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
880 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Trackbar verschieben

  Alt 7. Jun 2024, 10:08
Eine andere Möglichkeit wäre es, eine eigene Trackbar-Komponente abzuleiten, bei der die beiden Events published sind, z.B. so:
https://github.com/DanielGausi/Nemp/...mpTrackbar.pas
The angels have the phone box.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 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