我有一个包含数据的数据库表,需要将字段加载到TTreeView
对象中。
该行:
ItemTree.Items.AddChild(nil, CurrentField_Text);
只需将一个节点添加到顶层。
我怎样才能指定一个点来插入它?
请注意,在遍历表中的数据时,我可能(例如)插入 3 个顶级项目,然后第 4 个元素实际上是节点 2 的子节点。
我该如何指定?
nil
在对 的调用中使用父节点而不是AddChild
,以便将子节点添加到父节点:
ParentNode := ItemTree.Items.AddChild(nil, 'Parent');
ItemTree.Items.AddChild(ParentNode, 'Child node');
这是一些直接从我的程序中提取的代码,它将从查询中获取的值插入到树视图中。
tv.items.clear;
with qCustTree do // this is the query which 'feeds' the treeview
try
close;
params[0].asinteger:= qCustWithCallsID.asinteger;
open;
tv.items.BeginUpdate;
while not eof do
begin
father:= fieldbyname ('father').asinteger;
if father = 0
then node:= nil
else node:= FindANode (father);
lastnode:= tv.Items.AddChildObject (node, fieldbyname ('curdate').asstring,
pointer (fieldbyname ('id').asinteger));
next
end;
finally
tv.items.endupdate;
tv.fullexpand;
tv.Selected:= tv.Items[0];
tvchange (nil, tv.Selected);
end;
如果返回元组的'father'字段为0,则在树上打开一个新的父节点,否则打开一个新的子节点。