Aus der Delphi Hilfe:
Die Funktion Assigned prüft, ob ein Zeiger oder eine Prozedurvariable den Wert NIL hat (nicht zugewiesen ist).
(Deshalb habe ich ja assigned erwähnt oben). Einfach mit:
Code: Alles auswählen
if assigned(NameNode) then begin
{...}
end else showmessage('Fehler');
Es wird ja ein Objekt erzeugt, eine Variable auf ein Objekt ist im Prinzip auch nur ein Zeiger auf das Objekt, existiert das Objekt nicht, dann ist der Zeiger nil (was nicht zwingend gilt, wenn das Objekt existiert hat und zerstört wurde, ohne eben den Objektzeiger auf nil zu setzen, davon gehe ich jetzt aber mal nicht aus). Mit assigned prüft man nun vorher ob, in diesem Fall, NameNode überhaupt existiert, wenn das Objekt nämlich nicht existiert und du versuchst darauf zu zugreifen, kommt es nämlich zu solchen Fehlern.
Daher kannst Du prüfen ob NameNode existiert und wenn nicht, dann bricht das Programm nicht ab, wenn Du nicht auf die Variable anderweitig zugreifst. Existiert sie nicht, ist irgend etwas falsch gelaufen beim Versuch RdcConfiguration zu finden. Ob die XML Datei wirklich existiert prüfe ich mittels eines simplen FileExists, aber das scheint in Ordnung zu sein, da Du ja scheinbar auf Doc2 zugreifen kannst.
Würde ich die Dinge so wie alle anderen machen, hätte ich so manche Probleme nicht.
Aber das wäre langweilig.