Удаление потомков узла. По логике, перед тем как вставить что-то новое желательно, удалить старые элементы узла.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Процедуры очищения узла в дереве //----------------------------Очищение узла от всех потомков в дереве------------------------- procedure TCopyAndPasteThread.ClearNodeChildrenData(Node:TTreeNode); //Вспомогательная процедура - рекурсивно очищает память под Data под всеми узлами var i:integer; begin if not (MainForm.TreeView1.Selected=Node) then begin If Node.Data<>nil then Dispose(Node.Data); end; for i := 0 to Node.Count-1 do Self.ClearNodeChildrenData(Node[i]); end; procedure TCopyAndPasteThread.ClearAllChildren; //Непосредственное удаление из дерева var Node:TTreeNode; begin Node:=MainForm.TreeView1.Selected; ClearNodeChildrenData(Node); Node.DeleteChildren; end; |