如何隐藏 TVirtualStringTree 节点?

发布于 2024-11-30 19:11:07 字数 512 浏览 0 评论 0原文

如果我没记错的话,在一个节点中不可能有不可见的节点。 TVirtualStringTree 树视图,因为没有启用、可见或其他 属性来这样做。我的说法正确吗?

如果是,我如何设法拥有不可见的节点?

我的树的结构:

  • 一个节点
  • 另一个节点
    • 子节点1
    • 子节点2
    • ...
    • 子节点15
    • 子节点 16(不可见!)
  • 又一个节点
    • 子节点 1 来自另一个节点
    • 子节点 2 来自另一个节点

当我对 整棵树,让我打印出第一列的文本。我可以 还检查该节点,发现他有一个前一个兄弟节点,但没有 例如,下一个兄弟节点的高度为 18。

那么我是如何做到这一点的呢?

if I'm not mistaken it's not possible to have invisible nodes in a
TVirtualStringTree treeview, as there are no enabled, visible or other
properties to do so. Am I right about this?

If yes, how did I manage to have a non visible node?

Structure of my tree:

  • One Node
  • Another node
    • Subnode 1
    • Subnode 2
    • ...
    • Subnode 15
    • Subnode 16 (which is not visible!)
  • Yet another node
    • Subnode 1 from yet another node
    • Subnode 2 from yet another node

I can find Subnode 16 when I do a FirstNode/GetNextNode loop over the
whole tree and let me print out the text for the first column. I can
also inspect the node and see that he's got a previous sibling but no
next sibling for instance and the node height is 18.

So how did I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天赋异禀 2024-12-07 19:11:07

如果我没有记错的话,TVirtualStringTree树视图中不可能有不可见的节点,因为没有启用、可见或其他属性可以这样做。我的说法正确吗?

你错了,可能同时存在不可见和禁用的节点。要切换节点的可见状态,

vtree.IsVisible[Node] := boolean;

请使用启用/禁用节点使用

vtree.IsDisabled[Node] := boolean;

您还可以在树的 OnInitNode 事件中将节点初始化为禁用状态,方法是将 ivsDisabled 添加到 InitialStates参数。

if I'm not mistaken it's not possible to have invisible nodes in a TVirtualStringTree treeview, as there are no enabled, visible or other properties to do so. Am I right about this?

You are wrong, it is possible to have both invisible and disabled nodes. To switch visible state of the node use

vtree.IsVisible[Node] := boolean;

to enable / disable node use

vtree.IsDisabled[Node] := boolean;

You can also initialize node to disabled state in tree's OnInitNode event with adding ivsDisabled to InitialStates parameter.

残花月 2024-12-07 19:11:07

除了 ains 答案之外,要递归树,您可以使用以下函数:

递归所有节点

Tree.GetFirst();
Tree.GetNext();
Tree.GetPrevious();

只递归可见节点:

Tree.GetFirstVisible();
Tree.GetNextVisible();
Tree.GetPreviousVisible();

In Addition to ains answer, to recurse the tree you can use the following functions:

To recurse ALL nodes

Tree.GetFirst();
Tree.GetNext();
Tree.GetPrevious();

To recurse only VISIBLE nodes:

Tree.GetFirstVisible();
Tree.GetNextVisible();
Tree.GetPreviousVisible();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文