VirtualStringTree如何释放多个节点

时间:2012-08-03 21:13:52

标签: delphi-7 virtualtreeview delphi tvirtualstringtree

我有一个带有X根和X子节点的VirtualStringTree。

每个根都分配了一个特殊的NodeData。 每个子节点都分配了另一个NodeData。 我怎么知道OnFreeNode是哪个?因为我无法在不知道分配给它的记录的情况下释放数据。 任何想法?

1 个答案:

答案 0 :(得分: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;