Hallo,
Mein Programm kann man durch das Menü beenden, oder nunmal mit dem Windows "Kreuzchen". Nun habe ich bei dem Kreuz das Problem, das ich dort Probleme mit der Abfrage ("Wirklich Beenden?; "Vor dem Beenden Speichern?") bekomme. Wenn ich dort diesen Code benutze (der vom Beenden-Knopf im Menü):
Delphi-Quellcode:
procedure TForm1.Beenden1Click(Sender: TObject);
var S: Integer;
begin
if OpenDialog1.FileName='' then begin
OpenDialog1.FileName:='Unbenannt'
end;
if Form1.SynMemo1.Text='' then begin
if Application.MessageBox('Programm wirklich Beenden?', 'eEdit', MB_ICONQUESTION + MB_YESNO) = IDYES then
Form1.Close
end
else begin
S := Application.MessageBox('Datei wurde geändert, vor dem Beenden abspeichern?', 'eEdit', MB_ICONQUESTION + MB_YESNOCANCEL);
if S=IDYES then begin
if SaveDialog1.Execute then begin
SynMemo1.Lines.SaveToFile(SaveDialog1.FileName);
Form1.Close;
end;
end;
if S=IDNO then
Form1.Close
end
end;
dann gibts Probleme, was irgendwie auch klar ist. Da wenn das Windows Kreuz gedrückt wird OnClose vom Form1 benutzt wird.
Auf gut Deutsch, ich würde am liebsten das schließen durch das Kreuz umfangen, und dann durch meinen Code "ersetzen". Oder gibts im OnClose die Möglichkeit das Beenden abzubrechen? Das währe auch ne Möglichkeit.
Den mit meinem Code im OnClose würde sich das Programm ja beenden, egal auf was für einen Knopf man drückt. Hauptsache, er ist durch mit der Prozedur.
gruß,
shAd