Bitte halte dich an die regel: Eine Frage pro Thema.
Du kannst den Code in das Ereignis FormCloseQuery (Form wählen, dann Ereignisse im Objektinspektor) des Formulars einfügen. Ich würde den Code aber in eine Methode schreiben, da du ihn mehrfach benutzt.
Es könnte dann so aussehen:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 =
class(TForm)
Button1: TButton;
RichEdit1: TRichEdit;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
private
procedure SaveOnClose;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
SaveOnClose;
end;
procedure TForm1.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
SaveOnClose
end;
procedure TForm1.SaveOnClose;
begin
if RichEdit1.Modified
then
if Application.MessageBox('
Wollen sie das geänderte Dokument speichern?', '
Frage', 36) = ID_YES
then
SaveDialog1.Execute
else
Close;
end;
end.