TTrackBar großschrittig auslesen
Hallo,
gibt es eine Möglichkeit, eine TTrackBar so auszulesen, dass sie nur dann ein Ereignis wirft, wenn sie die ganzzahligen Positionen erreicht? OnChange ist mir zu kleinschrittig, da schon bei jeder kleinsten Mausbewegung das Event auslöst, sodass ich wenn ich den Zeiger um nur eine Einheit verschiebe, das Event bereits 20 mal aufgerufen wurde. Gibt es so etwas oder muss ich mir da selbst was zusammenbasteln? Sowas wie
Delphi-Quellcode:
?
if alteposition <> neueposition then machwas
|
AW: TTrackBar großschrittig auslesen
Warum verkleinerst du nicht einfach den Wertebereich?
Max div 2 und schon sind es "größere" Schritte. :roll: |
AW: TTrackBar großschrittig auslesen
Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin case TrackBar1.Position of 1: Winapi.Windows.Beep(1000,50); 5: Winapi.Windows.Beep(1200,50); 10: Winapi.Windows.Beep(1500,50); end; end; |
AW: TTrackBar großschrittig auslesen
Zitat:
@hathor: Das Problem besteht darin, dass egal, wie die Position konkret abgefragt wird, das Event immer mehrmals aufgerufen wird, ohne dass sich die Position geändert hätte. Ich denke mal, die sinnvollste Lösung ist es dann einfach zu prüfen, ob sich die Position des Zeigers geändert hat oder nicht und wenn ja, dann mit der neuen Position die Information weiter zu verarbeiten. PS: Ach so. Die Positionen sind bei meiner TrackBar immer ganzzahlig (ich weiß nicht ob man das noch anders einstellen kann) und daher sind auch keine Dezimalwerte zur Abfrage möglich. |
AW: TTrackBar großschrittig auslesen
Nee, die Größe hat keine Auswirkung, aber wenn du sowieso nur die ganzen Zahlen willst, dann kann man doch locker die Ungeaden einfach weg lassen. :angel:
Ich finde es nicht mehr, aber mir was so, als wenn die TrackBar und Scrollbar (von Windows) eigentlich auch den Modus kennt, wo das Change-Ereignisse erst beim Loslassen der Maustaste ausgelöst wird. :gruebel: Ansonsten kann man das selber machen * Timer starten und das Ereignis erst auswerten nach Zeitablauf * oder auf die gerückte Maustaste reagieren, aber was ist, wenn man nicht die Maus zum Bedienen benutzt... |
AW: TTrackBar großschrittig auslesen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 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