TTrackBar - Ereignis NACH ändern?
-
Hiho.
Ich habe in einem Programm eine TTrackBar...
Wofür sie da is is relativ egal, jedenfalls wird eine recht aufwändige Methode aufgerufen, wenn sich der Wert ändert.Allerdings is das natuerlich Problematisch, wenn ich den "Schieberegler" hin und herschiebe... Denn bei jedem Teilschritt wird die Methode ausgeführt. Wenn ich nun 10 Werte in der TrackBar habe und von 1 zu 10 gehe wird die Methode 9 mal ausgeführt.
Da kommt das Programm ganz schön "ins schwitzen".
Gibt es also eine Möglichkeit einen Event auszulösen, NACHDEM der Regler fertig verschoben wurde, damit die Methode nur einmal aufgerufen wird?
Oder anders formuliert: WIE geht es? (Damit es bei eine Frage Pro Thread bleibt nehmen wir lieber diese Frage ;))
Wäre sehr dankbar, wenn da jemand einen Lösungsansatz hat

Byebye
o_OPS: Das Problem das die "OnChange" ausgelöst wird, wenn nur auf den Regler Gedrückt wurde habe ich bereits gelöst.... [if (tag != Position){ .... tag = position.... }]
-
Hallo,
Das Problem ist ja wohl, dass dein Programm kaum wissen kann wann du aufhören willst zu verschieben. Eine Lösung wäre OnExit zu verwenden, was aber erst aufgerufen wird wenn dein Trackbar den Fokus verliert.
-
Oder aber OnMouseDown und OnMouseUp abfangen und erst bei OnMouseUp die Aktion ausführen...
-
Gute Idee! Allerdings hat meiner Hilfe zufolge TTrackBar keine derartigen Events.
-
ja genau das ist leider das Problem.
Sonst hätte ich es damit schon versucht (Habe aus verzweifelung sogar die Drag Events getestet :D)
-
Hallo
entweder Komponente ableiten
oder mal mit Timer versuchenMfG
Klaus
-
Bastel Dir doch mit Hilfe eines Timers eine Verzögerung ein.
Gruß,
Alexander
Edit: Zu spät...
-
Schau mal in diesem Thread hier: http://www.c-plusplus.net/forum/viewtopic.php?t=78513&postdays=0&postorder=asc&highlight=trackbar&start=10
-
Man könnte auch eine andere Komponente verwenden. Ich nehme für solche Fälle die LMD-Tools. Der dortige Trackbar hat alle nötigen Ereignisse. Die Lite-Version gibts sogar umsonst. Siehe http://www.lmd.de/products/#P1
Schöne Grüsse aus Tokyo an alle Forumsmitglieder.

-
Klingt vielversprechend.
Allerdings is hier jemand in der Projekt leitung, der nur ungerne eine extra Komponente haben möchte..
Werde es jetzt erstmal Versuchen mit nem Timer zu verknüpfen, der überprüft, wie lange der Slider auf der Selben Position steht. So wird auch mit Tastaturänderungen nicht sofort die Methode aufgerufen.. (Wenns dann so klappt ;))
Aber Danke für den Tip, ausserhalb dieses Projektes kann man das Sicherlich nochmal brauchen

Und Viel spass in Tokyo

-
@Joe: Danke für den Link (übersehen >_>) aber das is nich ganz das was ich suche

-
habe genau das selbe problem

hast du in der zwischenzeit schon ne lösung gefunden?
ich habs mit OnKeyUp versucht, aber der will meinen "Maus-Key" nicht erkennen
geht nur mit tastatur