Delphi-Quellcode:
procedure TForm1.OnCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := True;
case MR of
mrYes : begin
SD := TSaveDialog.Create();
try
// Set dialog properties
// ...
if (SD.Execute) then
begin
// Save document
end
else begin
// Do NOT close application because user cancelled
// SaveDialog.
CanClose := False;
end;
finally
SD.Free();
end;
end;
// Nothing to do here
mrNo : ;
// Application should NOT be closed
mrCancel : CanClose := False;
end;
end;
Sinnvoller wäre es den Teil unter
mrYes in eine eigene Methode auszulagern, allein schon wegen der Übersichtlichkeit, aber eben auch aufgrund der möglichen Wiederverwendbarkeit -- vorausgesetzt du schreibst diese Save()-Methode ausreichend allgemein.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)