Vorab: Ich habe vor diesem Posting viel gesucht und nachgelesen. Und nein, ich habe keine passende Antwort gefunden.
Ich möchte ein gegebenes, größeres Projekt so erweitern, dass die geschriebenen Werte in eine Ini verschlüsselt abgelegt und gelesen werden können.
TIniFile ableiten und entsprechende Zusatzfunktionen einbauen würde Unmengen an Änderungen am bestehenden Code mit sich bringen. Das ist nicht gewünscht.
Das bedeutet, dass weiterhin ganz normal z.B. per
Delphi-Quellcode:
var ini: TIniFile;
begin
ini := TIniFile.Create(IniName);
try
myString := ini.ReadString('Section','Ident','');
finally
ini.Free;
end;
ein String ausgelesen werden können soll. Nur eben beim Lesen entschlüsselt.
Wie lässt sich das nun umsetzen?
Meinde Idee war einen Klassenhelfer zu verwenden. Da ich bislang noch nicht damit gearbeitet habe, stolpere ich damit durch die Gegend.
Ich dachte, das ginge jetzt so in der Art:
Delphi-Quellcode:
type
TIniFileHelper = class helper for TIniFile
function ReadString(const Section, Ident, Default: string): string;
end;
implementation
function TIniFileHelper.ReadString(const Section, Ident, Default: string): string;
begin
//hier später die Entschlüsselung
inherited;
end;
Überschrieben wird das damit schonmal, aber das Erben der normalen Funktionalität klappt nicht. Ginge das, könnte ich an Stelle des Kommentars die Funktion erweitern.
Wie also statt des "inherited" Versuchs richtig?