Home » Tutorials » Datenspeicherung » ThaXML-Library

ThaXML-Library

Das Beispielprogramm

Das Beispielprogramm orientiert sich an einer Frage aus dem Forum „Coder-Area“. Allerdings steht hier allgemein das Speichern von Porgrammeinstellungen im Vordergrund. Laden Sie sich den Quelltext des Programms auf Ihren PC (inkl. ThaLib.pas und ThaXML.pas).
Das Programm speichert verschiedene Dinge: Den Zustand einer Checkbox („true“ oder „false“), eine normale Zeichenkette und eine Liste eines Objekttyps. Am besten legen wir ein eigenes Objekt für die Einstellungen an. Hier kurz alle Deklarationen:
Das Einstellungen-Objekt:

TEinstellungen = class
  public
    // Dummy-Variablen
    checked: boolean;
    zeichenkette : string;
    // Liste speichert Objekte vom Typ TTest
    List : TList;
    // Constructor / Destructor wegen der Liste
    Constructor create;
    Destructor Destroy;
    // Laden / Speichern der Einstellungen
    procedure LoadFromXML(AParent: TXMLTag);
    procedure SaveToXML(AParent: TXMLTag);
end;

Das zweite Objekt, das in „List“ (s.o.) gespeichert wird:

// Das Programm speichert eine Liste
// dieser Objekte
TTest = class
  public // Stringlist
    str1, str2: TStringList; // Dummy-Variable
    int: Integer;
    // Constructor / Destructor wegen der StringList
    Constructor create;
    Destructor Destroy;
    // Laden / Speichern der Einstellungen
    procedure LoadFromXML(AParent: TXMLTag);
    procedure SaveToXML(AParent: TXMLTag);
end;

Noch mal zur Verdeutlichung: Das Einstellungen-Objekt speichert eine Liste mit Objekten des Typs TTest.

Auffällig ist, dass auch der Typ TTest die Prozeduren „SaveToXML“ und „LoadFromXML“ besitzt. Das heißt, ein Objekt vom Typ TTest speichert „sich selbst“. Das Einstellungen-Objekt delegiert das Speichern einfach an die Objekte in der Liste!
Mit dem Code der Constructor und Destructor wollen wir uns nicht aufhalten, genausowenig wie mit den Methoden die Stringlisten zu füllen. Kommen wir gleich zu den Prozeduren, die Objekte zu speichern und zu laden. Ersteres ist einfacher zu realisieren.