Datei bei Windows Shutdown speichern:
Delphi-Quellcode:
type
TForm1 = class(TForm)
private
procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QUERYENDSESSION;
end;
procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
// TMemIniFile Daten speichern
// Windows erlauben, herunterzufahren
Msg.Result := 1;
end;
Ich speichere am Anfang und am Ende meines MemIni-Files einen Wert. Beispiel ausgabe 14 von meinem MemIniFile:
[BOF]
ausgabe=14
..... Daten ....
[EOF]
ausgabe=14
Öffnen des MemIniFiles D: Ich überprüfe unter BOF und EOF je den Wert ausgabe. Wenn OK, dann vergleiche ich den Wert von "ausgabe" mit dem Wert im aktuellsten Backupfile B. Ich nehme die neuere Version von beiden; i.a. also D (wenn D, dann erstelle ich davon ein neues Backup B).
Schreiben des MemIniFiles: Ich entferne BOF und EOF, lese via GetStrings die Daten des MemIniFiles in eine TStringList h, setze an den Anfang von h [BOF] ausgabe=... und am Ende von h [EOF] ausgabe=..., inkrementiere dabei "ausgabe", schreibe h via SetStrings zurück und speichere D ab.
D.h. erstelle
TMeinMemIniFile = class(TMemIniFile) und passe mindestens
constructor und destructor entsprechend an.
AutoSave
UpdateFile