fortschrittsbalken?
-
hi leutz
wüsst gern wie man das macht das mein programm eine funktion ausführt und dabei ein fortschritsbalken vollläuft.oder wenigstens das die funktion läuft und der balken dazu paralell in einer vorgegebenen zeut z.B. 10 sec. durchläuft? einzeln krieg ichs noch hin, aber beides gleichzeitg?helft mir bitte!
-
Sorge innerhalb der Funktion dafür, dass die Anzeige aktualisiert wird.
void dauert_lange() { for (int i = 0; i < ganz_viel; i++) { mach_was(); ProgressBar->Position += schritt; Application->ProcessMessages(); } }
-
Du nimmst ein ProgressBar und gibst ihm Minimum (0), Maximum (100) und Step (1) an. Dann als Bsp. einen Button:
void __fastcall TForm1::Button1Click(TObject *Sender) { ProgressBar1->Position=0; for (int i=0; i<100; i++) { ProgressBar1->StepIt(); for (int r=0; r<10000000; r++) { r=r+1; } } }Die Scheife in der Mitte ist nur zur Zeitverzögerung da. Die Parameter für Minimum, Maximum und Step kannst du auch zu Laufzeit ändern.
-
Merkwürdige Zeitverzögerung!
Versuchs mal mit Sleep.
-
jo danke erst mal.
ich habs so gemacht wie helfer 22 gwsagt hat. mit seiner "zeitverzögerung" hat auch alles geklappt. aber dann hab ich mal stattdessen die funktion Beep() eingesetzt. da funktionierts leider nich so flüssig. erst springt sie auf so ungefähr 10 (also ProgressBar1->Position==10) und zum schluss dann auf die vollen 100. warum das?
-
Merkwürdige Zeitverzögerung! Versuchs mal mit Sleep.Eine Zeitverzögerung kann alles sein was Rechenzeit kostet. Sollte auch nur dazu da sein den ProgressBar zu demonstrieren.
erst springt sie auf so ungefähr 10 (also ProgressBar1->Position==10) und zum schluss dann auf die vollen 100. warum das?Zeig doch mal deinen Code her.
-
ah alles ok hatte bei den parametern von Beep() vorher mal mit arrys rumgetestet und hatte das jetzt nur kopiert gehabt also so das so aus:
Beep(hoehe[i], laenge[i])so un das i ist mir dann zum verhängnis geworden.