Thema: Delphi Das verrückte Formular

Einzelnen Beitrag anzeigen

Tenobaal

Registriert seit: 9. Mai 2013
21 Beiträge
 
Delphi XE5 Professional
 
#8

AW: Das verrückte Formular

  Alt 21. Aug 2014, 11:25
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

Geändert von Tenobaal (21. Aug 2014 um 11:27 Uhr)
  Mit Zitat antworten Zitat