我有一个从第三方项目文件填充的对象列表。该文件的设计方式是每个项目都位于层次结构的“级别”上。所以第一个项目在 0 级,它的所有子项目都在 1 级,依此类推。
举个例子:
1. Node 1 (Level 0)
2. Node 1.1 (Level 1)
3. Node 1.2 (Level 1)
4. Node 1.3 (Level 1)
5. Node 1.3.1 (Level 2)
6. Node 1.4 (Level 1)
7. Node 2 (Level 0)
8. Node 2.1 (Level 1)
9. Node 2.1.1 (Level 2)
10. Node 3 (Level 0)
这将产生一个像这样的层次结构:
- Node 1
--- Node 1.1
--- Node 1.2
--- Node 1.3
----- Node 1.3.1
--- Node 1.4
- Node 2
--- Node 2.1
----- Node 2.1.1
- Node 3
我的问题是弄清楚如何TTreeView
根据每个列出的对象的这些“级别”属性将此结构填充到 VCL 中。如果我设计了这个第三方文件结构,我会使用父属性而不是级别属性。
此列表中的对象可以像这样迭代:
var
I: TMyItem;
N: TTreeNode;
begin
for X := 0 to MyList.Count - 1 do begin
I := MyList[X];
//TMyItem has property "Level" which specifies hierarchy
// as well as "Title" property for the node's caption
//How to create node based on Level?
N.Data := I;
end;
end;
基于这个结构,我如何在树视图中填充它?