Event für TForm bei Windows-Benutzerabmeldung?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
WeePee
Beiträge: 25
Registriert: So 8. Dez 2013, 13:46

Event für TForm bei Windows-Benutzerabmeldung?

Beitrag von WeePee »

Hiho,

welches Event wird bei einer TForm durchlaufen, wenn ein laufendes Programm geschlossen wird aufgrund einer Benutzerabmeldung von Windows?

OnClose und OnDestroy werden scheinbar nicht durchlaufen.

Hintergrund ist, dass ich noch ein paar Daten sichern möchte. Bei normalem Schließen der Anwendung ist das kein Problem, da OnDestroy durchlaufen wird.

Viele Grüße
Wolfram

Benutzeravatar
theo
Beiträge: 10888
Registriert: Mo 11. Sep 2006, 19:01

Re: Event für TForm bei Windows-Benutzerabmeldung?

Beitrag von theo »

Probier mal

Application.OnEndSession

WeePee
Beiträge: 25
Registriert: So 8. Dez 2013, 13:46

Re: Event für TForm bei Windows-Benutzerabmeldung?

Beitrag von WeePee »

Habe aufgrund Deines Hinweises noch einmal gesucht und das gefunden:
http://forum.lazarus.freepascal.org/ind ... l#msg58612

WeePee
Beiträge: 25
Registriert: So 8. Dez 2013, 13:46

Re: Event für TForm bei Windows-Benutzerabmeldung?

Beitrag von WeePee »

Lösung ist dann das:

Code: Alles auswählen

procedure THauptfenster.FormCreate(Sender: TObject);
begin
    application.OnEndSession := @self.ApplicationSessionEnded;
end;
 
procedure THauptfenster.ApplicationSessionEnded(Sender: TObject);
begin
  self.Save;
end;     
Dabei ist zu beachten, dass OnDestroy vom Form tatsächlich nicht durchlaufen wird und vice versa: Beim normalen Schließen wird OnEndSession von application nicht durchlaufen.

Das ist schon inkonsistent.

Antworten