Einzelnen Beitrag anzeigen

ReVenGer

Registriert seit: 11. Okt 2005
Ort: Hannover
50 Beiträge
 
Delphi XE7 Architect
 
#1

Application.Terminate mit Msg.Dialog geht nur über TrayIcon Menü

  Alt 24. Okt 2013, 19:01
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
  Mit Zitat antworten Zitat