ScrollBar Komponente - Zahlen verändern ?
-
Hallo,
wie kann man mit einer ScrollBar-Komponente Zahlen verändern ? - Ich will, dass man mit der ScrollBar Zahlen verändern kann z.B. wenn man die ScrollBar Komponente "nach rechts schiebt" inkrementiert sich eine Zahl, die in einer Panel1 Komponente steht um "0.1" und wenn man die ScrollBar "nach links schiebt" soll sich die Zahl um "0.1" dekrementieren!
MFG Sankt M.
-
Hallo
Siehe den Event TScrollBar::OnScroll.
bis bald
akari
-
Hallo akari,
da ich mich noch nicht so gut in c++ auskenne, benötige ich mehr "Informationen" bzw. ich habes bereits so versucht, kommen aber nur Fehler oder die Zahl inkrementiert sich nur einmal...
void __fastcall TForm1::ScrollBar1Scroll(TObject *Sender, TScrollCode ScrollCode, int &ScrollPos) { float e; e = StrToFloatDef(Panel1->Caption + 0.1, 0); if(ScrollPos > 50) Panel1->Caption = e++; }usw.
Ich hab ka wie ich weiter machen soll oder was ich umändern könnte...MFG
Sankt M.
-
Hallo
Wenn schon dann
e = StrToFloatDef(Panel1->Caption, 0) + 0.1;bis bald
akari
-
Hallo,
danke, jedoch inkrementiert sich diese
0.1nicht zur dieser Zahl sondern eigenständing ?!? (0.1,0.2,0.3 usw.)..
MFG
-
Hallo

Was verstehst du unter eigenständig? Die Zahl 0.1 ist fest im Quellcode und kann sich nicht inkrementieren. Du brauchst also eine Variable. Ich habe einfach die Zwischenbenutzung von Panel1->Caption von dir übernommen. Wenn du etwas anderes inkrementieren willst must du eben entsprechend umbauen.bis bald
akari
-
Hallo,
so ich habe es so probiert, der Fehler besteht aber weiterhin...
void __fastcall TForm1::ScrollBar1Scroll(TObject *Sender, TScrollCode ScrollCode, int &ScrollPos) { float r = StrToFloatDef(Edit1->Text, 0); String Ergebnis = FloatToStr(r + r); float e; e = StrToFloatDef(Ergebnis, 0) + 0.1; if(ScrollPos > 50) Panel1->Caption = e++; }.. ?!? - Was ist daran genau falsch und warum inkrementiert sich meine gegebene Zahl nicht immer um 0.1 .. ?
MFG
-
Hallo
Minimalbeispiel
void __fastcall TForm1::ScrollBar1Change(TObject *Sender) { double e = StrToFloatDef(Edit1->Text, 0) + 0.1; Edit1->Text = e; }Hier wird der Wert im Edit sauber um 0.1 hochgezählt. Was dir daran nicht gefällt versteh ich nicht.
bis bald
akari
-
Hallo,
danke für deine Hilfe! Ich habe es jetzt so gemacht:
void __fastcall TForm1::ScrollBar1Scroll(TObject *Sender, TScrollCode ScrollCode, int &ScrollPos) { if((ScrollPos > 50) && (ScrollPos <= 100)) { double p; p = StrToFloatDef(Panel1->Caption, 0) + 0.1; Panel1->Caption = p; } else if(ScrollPos < 50) { double m; m = StrToFloatDef(Panel1->Caption, 0) - 0.1; Panel1->Caption = m; } }.. und es klappt
Merkwürdigerweise inkrementiert sich die Zahl um 0.1 weiter, wenn die ScrollBar schon bei ihrer "maximalen Position" ist (100).. Warum ??
Gruß Sankt M.
-
Pack mal den von Dir geposteten Code in ScrollBar::OnChange und änder ScrollPos in ScrollBar::Position, dann sollte es funktionieren.
Gruss
-
Hallo,
jo danke funktioniert!