Aber gibt es eine Möglichkeit die Deklaration von TIniFile so umzubiegen, dass TMemIniFile benutzt wird und zusätzlich bei MeineIniDatei.Free; dann .UpdateFile + Free ausgeführt wird?
Ich habe noch nicht so recht den Sinn hinter dieser Aktion verstanden, aber in der Regel verwendet man im Programm überall
TCustomIniFile
(der gemeinsame Vorfahre von
TIniFile
und
TMemIniFile
). Bei der Erzeugung wird dann entweder eine
TIniFile
- oder
TMemIniFile
-Instanz oder sonst eine Ableitung von
TCustomIniFile
erzeugt. Das automatische
UpdateFile
wird (ab Berlin) durch ein
AutoSave := true
realisiert. Das schreibt auch nur, wenn sich wirklich was verändert hat.
Leider gibt es schlecht programmierte Komponenten, die nur ein TIniFile akzeptieren, obwohl alle notwendigen Methoden bereits in TCustomIniFile deklariert sind.
Man könnte natürlich ein TMemIniFile zu TIniFile casten, aber das währe mir dann doch ein bischen zu unsauber.
Alternative war dann ein Klassenadapter als Ableitung von TIniFile, der alle virtuellen Methoden überschreibt und auf ein internes TMemIniFile umleited.