Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Uwe Raabe,
21. Aug 2014
In TCustomTreeView.DestroyWnd wird der Inhalt von Items in einen MemoryStream geschrieben und Items.Clear aufgerufen. In dem Moment sind die TreeNode-Pointer schon ungültig, obwohl sie noch die richtigen Daten enthalten. Nach dem Recreate werden die TTreeNodes zwar wieder hergestellt, allerdings stimmt die Position im Speicher mit hoher Wahrscheinlichkeit nicht mehr mit der vorigen überein. Das...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Uwe Raabe,
21. Aug 2014
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.