Vor der Zuweisung von Self könnte man ja mal einfach prüfen, ob es FNode schon / überhaupt gibt:
Delphi-Quellcode:
if Assigned(FNode) then begin
FNode.VisibleClass := self;
end else begin
MessageDlg('Da hat jemand vergessen FNode zu erstellen.',mtError,[mbCancel],0);
end;
Oder per Haltepunkt und Debugger mal nachschauen, was da los ist.