Anwendung wird nicht beendet



  • Hi,

    ich will meine Anwendung aus einer Berechnung beenden und das geht nicht. Habe das Problem mal mit wenig Zeilen dargestellt:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     for (int i = 0; i < 10; i++)
     {
        Caption = i;
        if (i == 5)
        {
          Beep();
          Application->Terminate();
        }
    
        Sleep(1000);
     }
    }
    

    Meine Anwendung sollte nun bei 5 beenden. Sie wird aber erst beendet, wenn die Schleife durch ist.

    Wie kann ich da nachhelfen?

    Phillip



  • Terminate beendet die Anwendung nicht sofort. Sie dazu auch Hilfe:

    Terminate ruft die Funktion PostQuitMessage der Windows-API auf, um die Anwendung kontrolliert zu beenden. Die Methode Terminate wirkt somit nicht direkt.

    Setze ein return dahinter und alles funzt.



  • Mach hinter Terminate noch ein break;


Anmelden zum Antworten