TrackBar2Change() - Aufrufe
-
nein war es nicht, aber danke jetzt weiß ich was du meinst!
-
Irgendwie funktioniert das bei mir mit der Variable merken und auswarten noch nicht so wirklich.
void __fastcall TForm1::TrackBar3Change(TObject *Sender) { if(Position() == TrackBar3->Position) { int Step = 2; int Tmp = TrackBar3->Position; Tmp = (Tmp - (Tmp % Step)); TrackBar3->Position = Tmp; Edit2->Text = (StrToInt(Edit2->Text) + Tmp); } } //---------------------------------------------------- int TForm1::Position(void) { int Position = TrackBar3->Position; return Position; }Kann mir bitte jemand sagen was ich falsch mache? Ist mit Sicherheit eine ziemlich bescheuerte Frage, aber ich weiß einfach nicht weiter!
-
Sehr... interessante Lösung...
Was soll den die Funktion da? Die gibt die Position zurück und die ist ja immer gleich der Position. Somit trifft deine Bedingung immer zu.Du musst dir doch nur ne globale Variable merken... Oder im Trackbar->Tag.
void __fastcall TForm1::TrackBar3Change(TObject *Sender) { if(TrackBar3->Position != TrackBar3->Tag) { TrackBar3->Tag = TrackBar3->Position; //Was auch immer du nur einmal machen willst: hier hin. } }Ich hoffe mal, dass es so klappt. Bin mir aber nicht sicher...

-
ich versuchs mal mit so einer Komponente von torry.net ! in welches Verzeichnis muss ich dann die Dateien: ExTrackBar.pas und ExTrackBar.res hinkopieren! Hab da keine wirklich Ahnung!
-
Was hat das mit dem Thema des Threads zu tun?
Zum Installieren von Komponenten gibt es einen eigenen FAQ-Beitrag.
-
Hat sich sowieso erledigt. Nichts von dem nützt mir etwas.
-
Hallo
Sonnenschein84 schrieb:
Hat sich sowieso erledigt. Nichts von dem nützt mir etwas.
hast du den Beitrag vom plemplem einmal versucht
schaut doch ganz gut aus oderMfG
Klaus
-
Es wird sich wohl nicht vermeiden lassen, dass die Routine mehrfach aufgerufen wird. Mit Plemplems Methode lassen sich zumindest die doppelten Aufrufe für die gleiche Position abfangen. Allerdings wird die Methode für alle Positionen zwischendurch aufgerufen.
Um das zu umgehen kann ich folgende Lösungsvorschläge anbieten:
1. Den Code in OnExit() ausführen.
2. In Ahnlehnung an Plemplems Code, jedoch mit zwei globalen Variablen (int itbCurPos, itbLastPos):
if (itbCurPos == TrackBar1->Position) { if (itbLastPos != itbCurPos) { // Hier Deinen Code einfügen itbLastPos = itbCurPos; } } itbCurPos = TrackBar1->Position;Ich hab' das nur kurz getestet und auch nur im Debug-Mode, aber da funktioniert es...
-
Joe_M. schrieb:
Allerdings wird die Methode für alle Positionen zwischendurch aufgerufen.
Ist das nicht Sinn und Zweck einer TrackBar? Wenn ich einen Lautstärkeregler hoch- und runterziehe erwarte ich doch auch, dass sich die Lautstärke während des Ziehens ändert, nicht erst beim Loslassen!?
-
Jansen schrieb:
Wenn ich einen Lautstärkeregler hoch- und runterziehe erwarte ich doch auch, dass sich die Lautstärke während des Ziehens ändert, nicht erst beim Loslassen!?
Ja. Da bin ich wohl etwas am Ziel vorbei geschossen... Sorry. In dem Fall ist natürlich Plemplems Lösungsvorschlag des Rätsels Lösung.