Abfrage vor dem Schließen des Programms



  • Hallo Leute,

    ich verwende BCB 5.0 Pro, und möchte folgendes machen:

    wenn der Benutzer das Hauptprogramm schließt, dann soll eine weitere Form eingeblendet werden. Auf dieser Form soll der Benutzer einige Felder ausfüllen können, und dann auf ein Button drücken und beide Formen sollen geschlossen werden.
    Das Problem ist, dass nach dem Schließen des Hauptprogramms die zweite Form kurz eingeblendet wird, und dann werden beide geschlossen. Das heißt.: ich weiß nicht wie man das Schließen des Hauptprogramms unterbricht, damit die Eingabefelder auf der zweiten Form ausgefüllt werden können.

    FormCloseQuery(TObject *Sender, bool &CanClose)
    {
    //----------------
    Hier das Schließen des Hauptprogramms verhindern, aber wie?
    //----------------
    
    Form2->Visible = true;
    
    }
    


  • Du musst in irgendeiner Form auf das Schließen der 2. Form warten.



  • Hallo,

    CanClose = false;
    

    VlG



  • Wohl am einfachsten mit Form2->ShowModal.

    Allerdings kann das zu Problemen führen, wenn zB Windows heruntergefahren werden soll. Dann gibt es nach kurzer Zeit den 'Diese Anwendung reagiert nicht'-Dialog.

    Man könnte aber das Beenden beim Herunterfahren auch erst einmal ablehnen, den Dialog ausführen lassen und dann das Herunterfahren neu auslösen.
    Oder aber Du unterdrückst den Dialog, wenn Windows heruntergefahren werden soll... Kommt draif an, ob die Eingaben obligatorisch sind.



  • Ich danke allen für die Antworten.

    "CanClose = false;" von RandomAccess85 hat's gebracht

    Gruß
    sonic


Log in to reply