Duch das Setzen von Form.Parent := pnl1;
wird ein DestroyHandle aufgerufen, was intern dazu führt, daß die Items des TreeView freigegeben und neu erzeugt werden. Dadurch werden die gespeicherten Pointer auf die TreeNodes ungültig.
Eventuell kannst du das Anlegen der Nodes in eine separate Methode verlagern, die du nach dem Setzen des Parent nochmal aufrufst.
Mir war nicht bewusst, dass
Form.Parent := pnl1;
ein DestroyHandle aufruft. Beim Debuggen fiel mir auch auf, dass die zuvor angelegten TTreeNode-Objekte (Rootnode, LinesNode... etc.) falsche Objektadressen haben, nachdem das neue Parent gesetzt wurde. Das scheint eine Eigenart beim TreeView sein, denn bisher ist ein derartiges Problem noch nicht aufgetreten, obwohl ich ständig Formulare auf irgentwelche Panel setze.
Tausend Dank für eure Hilfe