ProgressBar beim Programmstart



  • Ich habe eine Anwendung geschrieben, die etwas Zeit braucht, um zu starten.
    Jetzt habe ich mir überlegt, ich erstelle ein Form_Titel, in dem ich anzeige, wieviele Schritte bereits geladen wurden.
    Dazu habe ich ein ProgressBar und und ein Label in meinem Form_Titel. Beim Start des Programms öffnet sich, wie gewollt auch erst das Form_Titel. Erst, wenn das OnShow vom Hauptformular abgearbeitet wurde, erscheint das Hauptformular. Leider wird das Form_Titel nicht aktualisiert, sodass der ProgressBar und das Label immer gleich bleiben.
    Ich hab das ganze so gemacht, dass ich bei erreichen der einzelnen Schritte folgende Methode aufrufe:

    void TForm_Main::SchritteImProgressBar(int iSchritt)
    {
        Form_Titel->Label_Init->Caption = iSchritt;
    	Form_Titel->ProgressBar_Titel->StepIt();
    	Form_Titel->Update();
    }
    

    Irgendwie funktioniert das Update() nicht. Wo liegt der Fehler?



  • versuch mal in deiner Methode

    Application->ProcessMessages();
    


  • Application->ProcessMessages() bringt nichts.



  • Hallo

    Update und ProcessMessages sind beide ausreichend.
    Bist du sicher das dem ProgressBar überhaupt sinnvolle Werte zugewiesen sind, vor allem den Eigenschaften Min, Max und Step?
    Und ist auch sicher das die Funktion auch aufgerufen wird?

    bis bald
    akari



  • Hab das Problem lokalisiert!
    Ursache war, dass ich das Form_Titel in der Projekt-cpp aufgerufen habe. Dadurch funktionierte aus irgendeinem Grund kein Update.
    Jetzt rufe ich das Form_Titel im OnShow vom Form_Main auf. Dadurch funktioniert auch Update() wieder.


Anmelden zum Antworten