Sieht irgendwie merkwürdig aus. Bin nicht sicher, das "Dispose" wirklich das Objekt (bzw. dessen Speicherplatz frei gibt). Ich würde es auf jeden Fall so machen:
Delphi-Quellcode:
for i := 0 to TreeView1.Items.Count-1 do
if TreeView1.Items.Item[i].Data <> nil then
begin
TObject(TreeView1.Items.Item[i].Data).Free;
TreeView1.Items.Item[i].Data := nil;//diese Zeile erforderlich?
end;
Ach ja, und die Antwort auf dein Kommentar: Nein, diese Zeile braucht Du nicht, um das Objekt sauber freizugeben.