Vorweg, ja ich kenne die Wiki zu XMLPropStorageund habe zu dem Thema auch die Tante Google befragt.
Vorgeschichte:
Per Definition speichert der Vorgabehandler unter Windows die Datei mit Programmname.xml im Programmverzeichnis (%PROGRAMMFILES%/MeinProgramm) ab und das ist das was ich nicht haben will. Sondern es sollte im %Appdata%/MeinProgramm landen, wird ja normalerweise über die Funktion GetAppConfigDir (+ein wenig Logik) erreicht. OK, soweit so gut.
Frage:
Wie bekomme ich den XMLPropStorage dazu GetAppConfigDir zu verwenden, besonders im Hauptformular. Wo ist der richtige Zeitpunkt ? OnCreate der Hauptformulars ? Oder kann ich einen Macro im Objektinspector verwenden.
Andreas
XMLPropStorage Speichern im Benutzerverzeichnis
- af0815
- Lazarusforum e. V.
- Beiträge: 6945
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
XMLPropStorage Speichern im Benutzerverzeichnis
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2849
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: XMLPropStorage Speichern im Benutzerverzeichnis
OnCreate ist da nicht verkehrt. Nach dem Setzen des FileName musst doch noch die Methode Restore aufrufen.
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
XMLPropStorage1.FileName := GetAppConfigDirUTF8(False, True);
XMLPropStorage1.Restore;
end;
0118999881999119725-3
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6945
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: XMLPropStorage Speichern im Benutzerverzeichnis
Danke, das Restore war der missing Link.
Für den Dateinamen habe ich LazFileUtils.GetAppConfigFileUTF8(False, False, True) genommen.
Schaut jetz bei mir so aus
Dann landen die Daten in Windows unter Benutzer/AppData/Local/Programmname/Programmname.cfg ! Paaasst.
Für den Dateinamen habe ich LazFileUtils.GetAppConfigFileUTF8(False, False, True) genommen.
Schaut jetz bei mir so aus
Code: Alles auswählen
procedure TFormXXX.FormCreate(Sender: TObject);
var
AppDirCfgName : String;
begin
......
AppDirCfgName := LazFileUtils.GetAppConfigFileUTF8(False, False, True); // GetAppConfigFileUTF8(Global; SubDir; CreateDir)
XMLPropStorage.FileName := AppDirCfgName;
XMLPropStorage.Restore;
....
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).