Hi,
ich habe folgendes Problem:
Beim beenden meines Programms suche ich Fenster, sollten diese noch vorhanden sein fragt er über einen Message.Dialog ob das Programm beendet werden soll.
Code:
Procedure WarnOnClose;
var
Wnd: HWnd;
begin
Wnd := FindWindow('Fenster_1', nil);
begin
if Wnd <> 0 then
begin
if MessageDlg('Fenster_1 is still running! Really quit Programm?',
mtWarning, mbokCancel, 0) = mrok then
application.Terminate;
end;
begin
Wnd := FindWindow('Fenster_2', nil);
begin
if Wnd <> 0 then
begin
if MessageDlg('Fenster_2 is still running! Really quit Programm?',
mtWarning, mbokCancel, 0) = mrok then
application.Terminate;
end;
end;
end;
end;
end;
Jetzt zu dem Problem:
Wenn das Programm in der Taskleiste minimiert ist und ich das Popupmenü in der Taskleiste öffne, auf exit klicke und er die prozedur WarnOnClose aufrufe, erscheint der Message Dialog und bei Ok macht er Application.Terminate, auf Cancel bricht er ab.
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.
Das der Code oben nicht die eleganteste Lösung ist, kann ich mir fast denken.
Gruß
rvg