Wenn ich aber bei der Form oben rechts auf das Kreuz zum beenden drücke, erscheint zwar der Message Dialog, dort macht er aber Application Terminate egal ob ich im Message Dialog Ok oder Cancel auswähle.
Versuche es nach folgendem Muster (entscheidend ist die Verwendung des Var-Parameters "
CanClose"):
Delphi-Quellcode:
function TForm1.WarnOnClose: Boolean;
var
Wnd: HWnd;
begin
result := true;
Wnd := FindWindow('notepad', nil);
if Wnd <> 0 then
begin
result := MessageDlg('Notepad is still running! Really quit Programm?',
mtWarning, mbokCancel, 0) = mrok;
end;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := WarnOnClose;
end;