【发布时间】:2012-08-03 21:13:52
【问题描述】:
我有一个带有 X 个根和 X 个子节点的 VirtualStringTree。
每个根都分配了一个特殊的 NodeData。 每个子节点都分配了另一个 NodeData。 我怎么知道 OnFreeNode 哪个是哪个?因为我无法在不知道分配给它的记录的情况下释放数据。 有什么想法吗?
【问题讨论】:
标签: delphi-7 virtualtreeview delphi tvirtualstringtree
我有一个带有 X 个根和 X 个子节点的 VirtualStringTree。
每个根都分配了一个特殊的 NodeData。 每个子节点都分配了另一个 NodeData。 我怎么知道 OnFreeNode 哪个是哪个?因为我无法在不知道分配给它的记录的情况下释放数据。 有什么想法吗?
【问题讨论】:
标签: delphi-7 virtualtreeview delphi tvirtualstringtree
要确定节点级别,请使用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;
【讨论】: