EDIT: Oha. Ich sollte deinen Beitrag komplett lesen. Da zeigst du ja primzipiell schon die (von dir als 0815 bezeichnet) Lösung mehr oder weniger auf. Schau mal die
DeleteSelectedNodes()
Funktion an. Dort wird das auch gemacht.
Um ehrlich zu sein habe ich noch nie Nodes in einer Schleife löschen müssen. Aber nichts desto trotz verstehe ich diese Aussage nicht:
Gibt es eine schönere Möglichkeit durch alles Nodes zu laufen und die selektierten zu löschen? Wichtig ist, dass ich das alles per Hand machen muss.
Einen Einzeiler kann ich, wenn es den gibt, leider nicht verwenden.
Warum das
Rad immer wieder neu erfinden wenn es doch schon Funktionen dafür gibt?
VirtualTreeView1.DeleteSelectedNodes
.
Zur Not schaust du dir die Funktion im SourceCode des Trees an und baust die nach. Ich kann nur wirklich nichts dazu sagen, ob dann wirklich Referenzen verloren gingen. Aber es wäre nur logisch.
Aber schau dir mal die Funktion
TBaseVirtualTree.GetSortedSelection()
an. Die wird auch intern im Tree verwendet wenn du
DeleteSelectedNodes()
aufrufst.