In Delphi XE würde man dafür einen class constructor
und class destructor
nehmen.
In D2010 geht das auch schon.
Bei D2009 bin ich mir nicht ganz sicher (ich glaub da gab's das schon, aber es funktionierte nicht) und davor kann man es eh vergessen.
Aber praktisch kann man sowas auch über die Initialization- und Finalization-Abschitte erreichen.
Delphi-Quellcode:
CLASS VAR XMLDoc : IXMLDocument;
// Achtung: I und nicht T
PUBLIC
CLASS PROPERTY XML: IXMLDocument
READ GetXML;
// eventuell auch noch sowas
, falls es öffentlich sein soll
Beim ersten Sugriff auf XMLDoc wird dieses erstellt.
Delphi-Quellcode:
if not Assigned(XMLDoc) then
XMLDoc := TXMLDocument.Create(...);
Und durch das Interface wird es am Ende automatisch freigegeben.
Ich würde
MSXML aber nicht zur Datenhaltung nutzen, sondern nur beim Speicheren/Lesen eine
XML-instanz anlegen und danach wieder freigeben ... ansonsten die Daten halt in entsprechenden Variablen/Listen.