Home » Tipps & Tricks » Komponenten » TForm » Abfrage, bevor ein Programm/Formular geschlossen wird

Abfrage, bevor ein Programm/Formular geschlossen wird

In bestimmten Fällen muss man sicherstellen, dass eine Form nicht versehentlich oder vorzeitig geschlossen wird. Weit verbreitet ist beispielsweise eine Abfrage, die davor schützt, dass geänderte Daten nicht ungespeichert verloren gehen.Schreiben Sie in das OnCloseQuery-Ereignis des Hauptformulares folgendes, um ein unbeabsichtiges Beenden des Programmes zu verhindern:

procedure TForm1.FormCloseQuery(Sender: TObject; 
 var CanClose: Boolean);
begin
  CanClose := MessageDlg('Wirklich beenden?',
               mtConfirmation,
               [mbYes,mbNo],
               0) = mrYes; 
end;

Das Ereignis OnCloseQuery wird ausgeführt, bevor die Form geschlossen wird.Eine Abfrage dieser Art ist in vielen Fällen nicht notwendig. Setzen Sie solche Abfragen nur da ein, wo sie auch wirklich angebracht sind. Zusätzlich sei noch gesagt, dass das Beenden von Windows auf diese Weise behindert wird, da sich das Programm unter Umständen nicht von alleine schließt.