【问题标题】:VirtualStringTree how to free multiple nodesVirtualStringTree如何释放多个节点
【发布时间】:2012-08-03 21:13:52
【问题描述】:

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

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

【问题讨论】:

    标签: delphi-7 virtualtreeview delphi tvirtualstringtree


    【解决方案1】:

    要确定节点级别,请使用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;
    

    【讨论】:

    • 谢谢。我也忘了nodedatasize是固定大小的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 2011-09-19
    • 2012-03-17
    • 1970-01-01
    相关资源
    最近更新 更多