Originariamente inviato da MrCocò85
Nel ciclo di eliminazione utilizzo sempre item[0], quindi non ci sono problemi per quello.
In effetti hai ragione, anche se bisogna ammettere che così il codice è un po' fuorviante.

Originariamente inviato da MrCocò85
Gli oggetti puntati dal .data sono presenti in altre strutture, quindi facendo TObject(nd.Item[0].Data).free elimino anche gli oggetti che non devono essere eliminati.
Non sò come fare per eliminare i nodi lasciando gli oggetti puntati inalterati.
Se la distruzione degli oggetti viene fatta in un oggetto esterno, allora non ci sono problemi: puoi tranquillamente eliminare il nodo senza fare la Free dell'oggetto referenziato dalla proprietà Data, purché qualcuno - prima o poi, da qualche parte - si ricordi di distruggere quegli oggetti quando non servono più.

Ciao!