Thema: Delphi Das verrückte Formular

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#5

AW: Das verrückte Formular

  Alt 21. Aug 2014, 11:05
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.
Es kommt immer darauf an, wie das intern behandelt wird.

Wenn nur die Handles freigegeben werden, dann bleiben meistens dennoch die TObjekt-Klassen erhalten und danach wird dann daraus/darin dann wieder das neue Handle erzeugt.
Aber wie der TreeView intern mit seinen Items umgeht, weiß ich jetzt auch nicht.

Das kann man aber leicht prüfen.
> Einfach vor dem AddChild nochmal den "aktuellen" Wert auslesen, also das Item suchen, und dann die Zeiger vergleichen.

Natürlich kann man auch einfach immer den Parent jedesmal über den Namen neu suchen, beim Add, und auf diese globalen Variablen verzichten, vorallem wenn mann jetzt weiß (vermutlich), daß es mit diesen Zeigern gern Probleme gibt und sie sich schnell mal ändern könnten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat