![]() |
TrayIcon hält das Abmelden auf
Hallo Leute,
wenn mein Programm im Tray steht, und ich mich abmleden bzw. den Rechner ausschalten will, geht das nicht mehr. Schließe ich mein programm dann vollständig, geht alles wie immer einwandfrei. Woran kann das denn liegen, und wie bekomme ich das weg. Alle anderen Programme werden doch auch von Windows beendet, aber meins nicht! :roll: Kann jemand helfen? MfG Daniel L. |
Re: TrayIcon hält das Abmelden auf
Hast du evtl. im CloseQuery-Ereignis eine Userabfrage vergessen, die das Schließen z.B. bei ungespeicherten Dokumenten verhindert?
|
Re: TrayIcon hält das Abmelden auf
Wenn Windows beendet wird, sendet es an alle offenen Programme eine WM_CLOSE und WM_CLOSEQUERY. Bei einer dieser Messages solltest du dein TrayIcon zerstören und das Programm schliessen.
|
Re: TrayIcon hält das Abmelden auf
Nein. Windows sendet ein
![]() Eventuell verhindert Code in deinem ![]() |
Re: TrayIcon hält das Abmelden auf
Zitat:
Da das posten von Lösungen immer gern gesehen wird, poste ich hier mal meine Lösung: Ich hab im ClosQuery abgefragt, ob dass Form sichtbar ist, falls es so ist, dann verschiebt er es in den Tray, falls es nicht sichtbar ist, wird es geschlossen. Danke für den Denkanstoß :dp: |
Re: TrayIcon hält das Abmelden auf
Und wenn es sichtbar ist, fährt Windows jetzt immer noch nicht runter. Nutze eine globale Variable und wenn ein WM_QUERYENDSESSION von Windows kommt, setzt du sie auf True, damit sich dein Programm beendet.
|
Re: TrayIcon hält das Abmelden auf
Delphi-Quellcode:
So mache ich das. Wichtig ist zu wissen das die Form kein OnDestroy mehr bekommt, falls man dort
...
private FCanClose: Boolean; procedure WMQueryEndSession(var Msg: TMessage); message WM_QUERYENDSESSION; procedure WMEndSession(var Msg: TMessage); message WM_ENDSESSION; ... procedure TJoyMainForm.WMQueryEndSession(var Msg: TMessage); begin // allow close of program on shutdown FCanClose := True; Msg.Result := 1; end; procedure TJoyMainForm.WMEndSession(var Msg: TMessage); begin if Msg.WParam = 1 then Msg.Result := 0; end; noch Finalisierungen macht, so muss man sie auch im WMEndSession erledigen. |
Re: TrayIcon hält das Abmelden auf
Genau so habe ich es mir gedacht. :thumb:
|
Re: TrayIcon hält das Abmelden auf
Zitat:
das wurde mit dem 7.1er Update für Delphi 7 behoben. (Er verwendet ja Delphi 7 Enterprise) Zitat:
mirage228 |
Re: TrayIcon hält das Abmelden auf
Wo wurde da was behoben?
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 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 by Thomas Breitkreuz