ProgressBar steuern
-
Schau dir dein if/else-Konstrukt nochmal genau an...
-
achja, danke.
Hab ich in der Eile gar nicht aufgepasst. Du dem Endpunkt kommt meine ProgressBar aber gar nicht weil count nicht größer als 10 sein darf.
-
Jetzt tut sich aber ein neues Problem auf.
Ich hab das so wie im FAQ gemacht und das Programm stürzt nicht so wie vorher ab. Doch jetzt reagieren die anderen Elemente nicht auf meine Befehle. Ich kann also nicht einmal das Programm beenden.
-
Schon, war ja auch nurn Tip.
Aber so macht das eh kein Sinn, dann wenn es gehen würde, würde deine Programm in dieser Funktion festhängen und nichts anderes mehr tun. Nimm doch nen Timer oder Thread zum Anzeigen.
Kleiner Denkanstoß://--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; static int add = 1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { ProgressBar1->Max = 20; ProgressBar1->Min = 0; ProgressBar1->Position = 0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Timer1->Enabled = !Timer1->Enabled; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { if(ProgressBar1->Position == ProgressBar1->Max || (ProgressBar1->Position == ProgressBar1->Min && add != 1)) add *= -1; ProgressBar1->Position += add; } //---------------------------------------------------------------------------
-
Sebastian Thalhammer schrieb:
Ich hab das so wie im FAQ gemacht
Zeig mal.
-
Danke. Dann weiss ich wie es geht. Aber ich finde den Timer bei den Komponenten nicht. Kannst du mir sagen wo der ist? Ich habe nämlich eine schlimme Befürchtung...
-
Tja ich weiss ja jetzt warum ich nichts mehr drücken kann aber ich poste mal...
void __fastcall TForm1::Button1Click(TObject *Sender) { // Das mit der while Schleife ist jetzt belanglos while(count < 100) { delay(1000); // Die Anweisungen von oben... count++; } } //--------------------------------------------------------------------------- // Verzögerungsfunktion // Prototyp: void delay(int ms); void delay(int ms) // Dauer in Millisekunden { for (int i = 0; i < ms; i += 50) { Sleep(50); Application->ProcessMessages(); } }
Mitm Timer würds gehen wenn ich in finden würde verdammt.
-
Sebastian Thalhammer schrieb:
Aber ich finde den Timer bei den Komponenten nicht.
Das haben wir doch gerade durch!?
-
okay. alles auf mein Kommando zurück. Timer gefunden...
Ich hab vergessen das die Komponenten mit T anfangen (TTimer).
Ich blutiger Anfänger....Danke für deine Hilfe du hast mich echt weitergebracht Jansen.
-
Sebastian Thalhammer schrieb:
// Die Anweisungen von oben...
Wirklich hilfreich ist das nicht, schliesslich steht "oben" eine ganze Menge Code.