2

我有一個帶有X根和X個子節點的VirtualStringTree。VirtualStringTree如何釋放多個節點

每個根都有一個特殊的NodeData分配。 每個子節點都分配了另一個NodeData。 我如何知道OnFreeNode是哪個?原因在不知道將哪個記錄分配給它的情況下,我無法釋放數據。 任何想法?

回答

3

要確定節點級別,請使用GetNodeLevel函數。它返回0基於水平指數,其中0表示根節點,1是根的孩子,2是一個根的孫子等

所以,在OnFreeNode事件中,你可以使用這樣的事情:

procedure TForm1.VirtualTreeFreeNode(Sender: TBaseVirtualTree; 
    Node: PVirtualNode); 
begin 
    case VirtualTree.GetNodeLevel(Node) of 
    0: // free your root node data 
    1: // free your root's child node data 
    end; 
end; 
+1

謝謝。我也忘記了nodedatasize是一個固定的大小。 – 2012-08-03 21:43:09

相關問題