我试图在树视图中获取所选节点的所有子节点,但遇到了一些问题。
以此树视图为例:
我想让所有明亮的子节点突出显示为“文件夹”节点,该节点将是旁边有蓝线的子节点。
这就是我的尝试:
procedure Form1.GetTreeChilds(ANode: TTreenode);
begin
while ANode <> nil do
begin
ListBox1.Items.Add(ANode.Text);
ANode := ANode.GetNext;
end;
end;
它的工作原理除了它还将不是子项的项目6返回到黄色突出显示的“文件夹”。
我需要更改或执行哪些操作才能将子节点设置为黄色高位文件夹?
感谢。
答案 0 :(得分:4)
请改为尝试:
procedure Form1.GetTreeChilds(ANode: TTreeNode);
begin
ANode := ANode.GetFirstChild;
if ANode = nil then Exit;
ListBox1.Items.BeginUpdate;
try
repeat
ListBox1.Items.Add(ANode.Text);
GetTreeChilds(ANode);
ANode := ANode.GetNextSibling;
until ANode = nil;
finally
ListBox1.Items.EndUpdate;
end;
end;