(RAD Studio)Virtual TreeView:如何一次初始化所有节点?

And*_*rew 2 delphi virtualtreeview

我刚刚发现了这个组件并开始使用它.

我知道它的整个概念是在需要的时候初始化节点,但我需要所有节点立即初始化.

有什么聪明的方法呢?

我想出的唯一一件事是在添加节点后使用GetLast().
我相信,还有更好的方法吗?

小智 6

立即初始化单个节点的更正确的方法是使用ValidateNode方法,而不是已经建议的FullExpand.根据VT的文件说明:

procedure ValidateNode(Node: PVirtualNode; Recursive: Boolean);
Run Code Online (Sandbox Code Playgroud)

TBaseVirtualTree.ValidateNode方法

ValidateNode确保初始化给定节点(及其所有子节点,如果Recursive为true).如果Node为nil,则使用隐藏的根节点(仅当Recursive为true时才有意义,在这种情况下整个树都被验证).

  • 这应该是公认的答案,因为 FullExpand 会**视觉上**扩展整个树,而您可能不希望它发生。 (2认同)