Einfach ein Repository für die Einstellungen
Delphi-Quellcode:
ISettingsRepository = interface
function GetBool( const Section, Ident : string; Default : Boolean = False ) : Boolean;
procedure SetBool( const Section, Ident : string; Value : Boolean );
...
end;
und konkretisieren für wo auch immer man das speichern möchte (INI, Registry, Datenbank, ...)
Dieses Repository gibt man dann einfach den Einstellungs-Klassen mit
Delphi-Quellcode:
TKlasseA = class
private
FSettingsRepository : ISettingsRepository;
FSection : string; // Path + ClassName?? Wie auch immer organisieren
function Get_enableHighlighting : Boolean;
procedure Set_enableHighlighting( Value : Boolean );
public
constructor Create( SettingsRepository : ISettingsRepository; const Path : string );
property enableHighlighting: boolean read Set_enableHighlighting write Get_enableHighlighting;
...
end;
function TKlasseA.Get_enableHighlighting : Boolean;
begin
Result := FSettingsRepository.GetBool( FSection, 'enableHighlighting' );
end;
procedure TKlasseA.Set_enableHighlighting( Value : Boolean );
begin
FSettingsRepository.SetBool( FSection, 'enableHighlighting', Value );
end;
Für den Einstellungsdialog hat man nun Zugriff auf das Repository und zwar völlig unabhängig von den einzelnen Klassen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)