如果我没弄错的话,就不可能有一个不可见的节点 TVirtualStringTree树视图,因为没有启用,可见或其他 属性这样做。我是对的吗?
如果是,我是如何设法建立一个不可见的节点?
我树的结构:
当我执行FirstNode / GetNextNode循环时,我可以找到子节点16 整棵树让我打印出第一栏的文字。我可以 还检查节点,发现他有一个以前的兄弟,但没有 例如,下一个兄弟节点,节点高度为18。
那我是怎么做到的?
答案 0 :(得分:22)
如果我没弄错的话,TVirtualStringTree树视图中不可能有不可见的节点,因为没有启用,可见或其他属性。我是对的吗?
你错了,可以同时拥有不可见和禁用的节点。要切换节点的可见状态,请使用
vtree.IsVisible[Node] := boolean;
启用/禁用节点使用
vtree.IsDisabled[Node] := boolean;
您还可以在树的OnInitNode
事件中将节点初始化为禁用状态,并将ivsDisabled
添加到InitialStates
参数。
答案 1 :(得分:1)
除了答案之外,要递归树,您可以使用以下功能:
递归所有节点
Tree.GetFirst();
Tree.GetNext();
Tree.GetPrevious();
仅递归VISIBLE节点:
Tree.GetFirstVisible();
Tree.GetNextVisible();
Tree.GetPreviousVisible();