XmlDat := TXMLDocument.Create('datei.xml');
Ließt schon die Datei aus ... also nochmal ist garnicht nötig
Delphi-Quellcode:
XmlDat.loadfromfile('datei.xml');
XmlDat.active := true;
NodeList und SubnodeList enthalten womöglich noch referenzen auf Objekte/Interfaces des
XML-Dokuments, welches du beim XmlDat.Free eventuell schon gelöscht hast.
Laß mal Probehalber das XmlDat.Free weg
oder stell gleich alles auf Interfaces um. (siehe nachfolgender Code)
Außerdem ist es nicht ratsam einfach so Exceptions unbehandelt zu unterdrücken.
Und bezüglich des Dateinamens ... Was die relativen Pfadangaben betrifft, darüber wurde schon sehr oft im Forum diskutiert.
Delphi-Quellcode:
function GetIniDaten(
const Filename:
String): boolean;
var XmlDat : IXMLDocument;
NodeList, SubnodeList : IXMLNodelist;
i,j, kn, knl, t, lc : integer;
begin
// laden der abgespeicherten XML-Konfiguration
if not FileExists(Filename)
then
begin
result := false;
exit;
end;
XmlDat := TXMLDocument.Create(filename);
nodelist := xmldat.DocumentElement.ChildNodes;
for j := 0
to nodelist.count-1
do
begin
// hier folgt der (funktionierende) Code, auch wenn auskommentiert tritt der Fehler auf
end;
result := true;
end;