Einzelnen Beitrag anzeigen

Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#10

Re: Wie Programmoptionen organisieren?

  Alt 19. Nov 2006, 00:00
Zitat von EConvertError:
Vielen Dank für eure Antworten!

Einerseits bin ich sehr den oben von mir angedeuteten typisierten Ansatz, anderseits wüsste ich nicht, wie man da Verschachtelungen ordentlich implementieren könnte.

Eure Record-Implementation entspricht eigentlich meinem typisierten Ansatz (das eigentliche Medium ist ja egal; man kann ja auch ein TIniFile/TRegistry so kapseln). Ihr verzichtet also auf eine Verschachtelung?

TRegistry und TIniFile unterstützen zwar Verschachtelungen, nur bin ich auf die ReadXXX und WriteXXX Methoden angewiesen. Dadurch habe ich dann überall im Code meine Konstanten für das Herauslesen (Key-, Sectionname) verstreut und nicht alles an einer Stelle.

Deshalb frage ich einfach mal ganz unverschämt, wie ihr das macht. :mrgreen:

Dankeschön,
Andreas
Hallo,

ich habe ein Objekt "XYZSettings", das seinerseits aus "Value"-Objekten besteht, die einen sinnvollen Namen haben wie "PrinterMarginLeft" und einen Typ wie Integer, Real, Color usw. was man so brauchen kann (wird ständig erweitert). Diese werden im Create initialisiert, dabei (und nur hier!!!) werden auch Section und Key für die Ini-Datei bestimmt und im Value-Objekt gespeichert (die Defaultwerte übrigens auch, und auch der Bezug zu einem TEdit o.ä. sofern vorhanden). Also stehen die alle an einer Stelle (im overrided Create) und sind eindeutig.

Neben Einzelroutinen für die Value-Objekete hat das Settings-Objekt auch Routinen wie ReadAllvalues (zum Programmstart) und SaveAllValues (am Ende). Normalerweise speichere ich vom User eingegebene Änderungen nicht extra in die INI-Datei, sondern nur in Settings.Value - die Saveroutinen am Programmende vergleichen den aktuellen Wert mit dem zuletzt eingelesenen und speichern nur wenn nötig (dirty).

Das Ganze hat bei einem komplexen Projekt mehr als 2500 Zeilen Umfang, dafür geht so etwas wie die Verwaltung von Stiften und Farben für Plots fast automatisch. Es gibt in dem Beispiel ja auch mehr als 200 Variablen, die der Benutzer ändern kann, um seine Plots anzupassen, und entsprechend viele Controls zur Eingabe von Zahlen, Farben, Stiftmustern usw.

Gruss Reinhard
  Mit Zitat antworten Zitat