![]() |
Application.Terminate mit Msg.Dialog geht nur über TrayIcon Menü
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:
Jetzt zu dem Problem:
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; 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 |
AW: Application.Terminate mit Msg.Dialog geht nur über TrayIcon Menü
Zitat:
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; |
AW: Application.Terminate mit Msg.Dialog geht nur über TrayIcon Menü
Vielen Dank für die Antwort!
Ersetzt mir FormCloseQuery die Punkte OnClose und OnDestroy, oder muss ich die dann weiterhin verwenden? Jetzt besteht das Problem wenn ich im TrayIcon Exit drücke, das er bei ok kein Terminate macht, aber in der Form gehts. |
AW: Application.Terminate mit Msg.Dialog geht nur über TrayIcon Menü
Zitat:
OnClose und OnDestroy werden allerdings dann nicht mit besonderer Behandlung benötigt, solang es ausschließlich um das von Dir beschriebene Problem geht. Zitat:
|
AW: Application.Terminate mit Msg.Dialog geht nur über TrayIcon Menü
Vielen Dank für die Erklärung. Jetzt verstehe ich das auch.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz