Allerdings musste ich feststellen, dass beim Aufruf die Objekte schon nicht mehr vorhanden sind. Ich dachte, die werden erst am Ende zerstört, nachdem ich meinen Kram abgearbeitet habe.
Rufe ich die Procedure SaveParams über einen Button auf, funktioniert das Abspeichern.
Wie macht das TXMLPropStorage, das wird doch auch erst beim Schließen aufgerufen?
Da ich erstens die Objekte im Programm erst erstelle und zweitens das XML anders formatieren möchte, kann ich TXMLPropStorage hier nicht verwenden.
Code: Alles auswählen
// Programm beenden => wirft eine Exception wegen nicht mehr vorhandener Objekte
procedure Tgui.FormDestroy(Sender: TObject);
begin
gui.SaveParams();
end;
// Einstellungen speichern => geht
procedure Tgui.g_btnsaveClick(Sender: TObject);
begin
gui.SaveParams();
end;