![]() |
Mal wieder IniFiles
Hallo,
ich schreibe und lese Werte über OnCreate und OnDestory in eine *.ini
Delphi-Quellcode:
Das funktioniert tadellos sofern ich das Programm manuell beende.
procedure TForm1.FormCreate(Sender: TObject);
var savestat: TIniFile; begin savestat := TIniFile.Create(ExtractFilepath(Application.Exename)+'settings.ini'); try RadioBox1.Checked:=savestat.ReadBool('Start', 'Status1', RadioBox1.Checked); Edit1.Text:=savestat.ReadBool('Text', 'Status1', Edit1.Text); finally savestat.Free; end; end; procedure TForm1.FormDestroy(Sender: TObject); var savestat: TIniFile; begin savestat := TIniFile.Create(ExtractFilepath(Application.Exename)+'settings.ini'); try savestat.WriteBool('Meldung1', 'Start', RadioBox1.Checked); savestat.WriteString('Text', 'Status1', Edit1.Text); finally savestat.Free; end; end; Ändere ich aber die Werte und reboote oder beende Windows ohne das Programm zuvor manuell beendet zu haben, werden die geänderten Werte nicht gespeichert und sind bei einem erneuten Programmstart nicht vorhanden. Wie kann ich das unterbinden? Also das die neuen Werte vor dem Reboot noch gespeichert werden. Hat jemand nen kleinen Tip? |
Re: Mal wieder IniFiles
Hallo Tim.exe,
das sollte Dir weiterhelfen, obwohl es auch nicht ![]()
Delphi-Quellcode:
bye
procedure WMEndSession(var Message: TWMEndSession); message WM_ENDSESSION;
procedure TMainForm.WMEndSession(var Message: TWMEndSession); begin if Message.EndSession then begin // ShowMessage('Windows is shutting down !'); end; inherited; end; |
Re: Mal wieder IniFiles
Ich vermute mal, dass das Destroy-Event dann nciht mehr ausgeführt. Bin mir aber nciht sicher, dachte eigentlich schon, dass es ausgeführt wird.
Versuch mal OnClose (querry) |
Re: Mal wieder IniFiles
Was erwartest du? Wenn ich den Stecker rausziehe, dann ist eben Schluß. OnDestroy wird eben nur aufgerufen, wenn das Fenster "zerstört" wird und wenn du dein Programm abschießt, dann wird das Ereignis eben nicht mehr aufgerufen.
|
Re: Mal wieder IniFiles
Aber wenn man Windows herunterfährt bzw. neu bootet, wird das Programm doch nicht abgeschossen, sondern erhält eine Botschoft zum beenden, oder?
|
Re: Mal wieder IniFiles
Ja. Aber was nützt das, wenn du nicht darauf reagierst? Deswegen ist ja auch der Code von Duffy nötig.
|
Re: Mal wieder IniFiles
Hallo,
Danke für die schnellen Antworten, werde den code von Duffy mal ausprobieren. Das mit OnCloseQuery hab ich mir auch schon überlegt, werde ich auch mal testen :D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:04 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