我刚刚发现了这个组件并开始使用它。
我理解它的整个概念是在需要的时候初始化节点,但我需要所有节点立即初始化。
这样做的聪明方法是什么?
我唯一想到的是在添加节点后使用 GetLast()。
我相信,还有更好的方法吗?
答案 0 :(得分:6)
立即初始化单个节点的更正确的方法是使用ValidateNode方法,而不是已经建议的FullExpand。根据VT的文件说明:
procedure ValidateNode(Node: PVirtualNode; Recursive: Boolean);
TBaseVirtualTree.ValidateNode方法
ValidateNode确保给定 节点(及其所有子节点,如果 递归是真的)被初始化。如果 节点为零,然后是隐藏的根节点 使用(这只有意义 递归是真的,在这种情况下 整个树都经过验证。)
答案 1 :(得分:3)
您可以编写自己的程序来手动构建树视图。
示例:
procedure TForm1.BuildTree;
var
i: integer;
Data: ^TYourRecord;
pNode, cNode: PVirtualNode;
begin
for i:=0 to 1000 - 1 do
begin
//build parent node
pNode := VT.AddChild(nil);
Data := VT.GetNodeData(pNode);
//fill record values
Data.SomeVar := 'Parent Node';
//build child node
cNode := VT.AddChild(pNode);
Data := VT.GetNodeData(cNode);
Data.SomeVar := 'Child Node';
end;
end;
答案 2 :(得分:3)
treeview.FullExpand;