AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TrayIcon hält das Abmelden auf

Ein Thema von daniel8520 · begonnen am 3. Okt 2004 · letzter Beitrag vom 3. Okt 2004
Antwort Antwort
Seite 1 von 2  1 2      
daniel8520
(Gast)

n/a Beiträge
 
#1

TrayIcon hält das Abmelden auf

  Alt 3. Okt 2004, 13:00
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!
Kann jemand helfen?

MfG
Daniel L.
  Mit Zitat antworten Zitat
BKempf

Registriert seit: 1. Jun 2004
103 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: TrayIcon hält das Abmelden auf

  Alt 3. Okt 2004, 13:03
Hast du evtl. im CloseQuery-Ereignis eine Userabfrage vergessen, die das Schließen z.B. bei ungespeicherten Dokumenten verhindert?
The problem with troubleshooting is that sometimes the trouble shoots back.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: TrayIcon hält das Abmelden auf

  Alt 3. Okt 2004, 13:04
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.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TrayIcon hält das Abmelden auf

  Alt 3. Okt 2004, 13:13
Nein. Windows sendet ein MSDN-Library durchsuchenwm_queryendsession. Wenn man diese Nachricht abfängt und nicht den richtigen Wert zurückgibt, bricht Windows das Runterfahren ab.

Eventuell verhindert Code in deinem Delphi-Referenz durchsuchenOnCloseQuery-Ereignis das Beenden deines Programmes und somit das Runterfahren von Windows.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
daniel8520
(Gast)

n/a Beiträge
 
#5

Re: TrayIcon hält das Abmelden auf

  Alt 3. Okt 2004, 13:18
Zitat:
Eventuell verhindert Code in deinem OnCloseQuery-Ereignis das Beenden deines Programmes und somit das Runterfahren von Windows.
Genau so war es. Ich hatte im CloseQuery CanClose := false stehen, weil die Applicaktion sich nicht beenden sollte, sonder das Prog in den Tray gehen sollte.
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ß

  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: TrayIcon hält das Abmelden auf

  Alt 3. Okt 2004, 13:22
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: TrayIcon hält das Abmelden auf

  Alt 3. Okt 2004, 13:27
Delphi-Quellcode:
  ...
  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;
So mache ich das. Wichtig ist zu wissen das die Form kein OnDestroy mehr bekommt, falls man dort
noch Finalisierungen macht, so muss man sie auch im WMEndSession erledigen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: TrayIcon hält das Abmelden auf

  Alt 3. Okt 2004, 13:28
Genau so habe ich es mir gedacht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#9

Re: TrayIcon hält das Abmelden auf

  Alt 3. Okt 2004, 13:29
Zitat von Robert Marquardt:
So mache ich das. Wichtig ist zu wissen das die Form kein OnDestroy mehr bekommt, falls man dort
noch Finalisierungen macht, so muss man sie auch im WMEndSession erledigen.
Hi,

das wurde mit dem 7.1er Update für Delphi 7 behoben. (Er verwendet ja Delphi 7 Enterprise)

Zitat von D7.1 Update Readme:
PROBLEME, DIE DIESES UPDATE BESEITIGT:

Ist beim Beenden einer Windows-Sitzung (durch Abmelden oder
Herunterfahren) eine VCL-basierte Delphi-Anwendung noch aktiv,
werden keine OnDestroy-Ereignisse für die Formulare der
Anwendung aufgerufen und es werden auch keine Finalisierungs-
routinen ausgeführt. Das kann zum Verlust von Daten und
Benutzereinstellungen führen (Quality Central 5332).
mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: TrayIcon hält das Abmelden auf

  Alt 3. Okt 2004, 13:32
Wo wurde da was behoben?
Zitat von Robert:
das die Form kein OnDestroy mehr bekommt
Zitat von Readme:
werden keine OnDestroy-Ereignisse für die Formulare der
Anwendung aufgerufen und es werden auch keine Finalisierungs-
routinen ausgeführt
Ich sehe da keinen Widerspruch zu Roberts Aussage.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz