Wir arbeiten hier seit Jahren mit dem Vorschlag von Thom (Variants).
Unsere Lösung ist so banal, das wir auf Typensicherheit,
OOP, CleanCode usw. an der Stelle verzichten. Die
Unit ist 186 Zeilen lang und implementiert einen bösen Singleton namens 'Setup'. Fertig.
Wir verwenden die Eigenschaften 'AsInteger', 'AsString', 'AsBoolean', um komfortabler auf Daten zugreifen zu können (nötig ist das nicht):
Delphi-Quellcode:
ValueAsVariant := Setup['MySetting'];
ValueAsInteger := Setup.AsInteger['MyIntegerSetting'];
ValueAsBoolean := Setup.AsBoolean['MyBooleanSetting'];
...
Wir hatten bisher nie die Muße, über den Sinn zu diskutieren. Die
Unit wurde in 30 min zusammengebaut und funktioniert.
Nein, und unsere Anwendungen haben keine 1000 Einstellungen. Höchstens 20.
Wer mit Metadaten arbeitet (und hier haben wir welche), sollte sich mit den Variants vertraut machen.