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.