Schleife soll beim Formular öffnen ausgeführt werden.



  • {
    for(int j=60; j>=0; j--)
    {
    Sleep(1000);
    Label2->Caption = j;
    }
    exit(0);
    }

    Label2 soll von 60 runtergezählt werden. Es gibt keine Fehlermeldung aber er hängt sich immer auf und er zählt zu schnell runter. Wollte eine /Sekunde Taktung. Könnt ihr mir einen Rat geben. Versteh das nicht. Bin etwas verzweifelt. 😞

    Hab Borl. Builder 6.



  • nimm doch einen timer



  • Ich kenn mich mit dem Timer noch nicht aus:-(



  • wenn du das über sleep löst, wird der ganze Thread für die zeit lahmgelegt!
    nimm einen timer..
    bei interval gibst du die anzahl milisekunden an, die runtergezählt werden soll...
    und das OnTimer erreigniss wird ausgelöst wenn der timer fertig gezählt hat.. der läd sich immer wieder selber bis enable auf false gesetzt wird..
    ist ganz einfach..

    BigNeal



  • Probier mal das (hab's nicht getestet):

    { 
     for (int j=60; j>=0; j--) 
        { 
         Sleep(1000);
         Application->ProcessMessages(); 
         Label2->Caption = j; 
        } 
     exit(0); 
    }
    

    Gruß WoWe



  • Genau so hab ich es auch hatte "Application->ProcessMessages();" noch hinzugefügt.
    Klappt immer noch nicht. Er führt das Prog aus und schliesst es sofort wieder ohne Fehlermeldung. Er zeigt auch eine Unit an. SELTSAM.



  • Hallo

    Benutz einen TTimer! Das ist ziemlich einfach.
    Die Eigenschaft Interval gibt die Wartezeit in Millisekunden (Also der Wert von Sleep).
    Die Eigenschaft Enabled gibt an, ob der Time gerade "tickt".
    Der Event OnTimer ist die auszuführende Funktion bei einem Tick, also deine Ausgabe.

    Und bitte nicht exit(0)!
    Dafür entweder

    Application->Terminate() ;
    

    oder, wenn im Mainform

    Close();
    

    bis bald
    akari



  • Danke habt mir sehr geholfen 😉


Anmelden zum Antworten