Dein MainForm hat ein Ereignis OnCanClose. Hier schreibst Du eine Abfrage rein in der Form
Delphi-Quellcode:
procedure TForm1.FormCanClose(Sender: TObject; var CanClose: Boolean);
var rc: Integer;
begin
rc:= MessageDlg('Möchten Sie die Änderungen speichern?',
mtConfirmation, [mbYes, mbNo, mbCancel], 0);
case rc of
mrCancel: begin CanClose := False; exit; end;
mrYes: SaveData;
end;
end;
(Alles ungetestet aus dem Gedächtnis runtergetippt!)