不需要DataSource;你的数据集假设是用Query的sql语句选出来的,一个字段是父节点,一个字段是子节点: var pnode,cnode:TTreeNode; //父节点,子节点变量 begin with query1 do begin close; sql.clear; sql.add('select 父节点,子节点 from mytable'); open; end; //with query1.first; //到第一条记录 Treeview1.Items.Clear; //清空原来的内容 while not(query1.eof) do //循环添加节点 begin pnode:=Treeview1.Items.addchild(nil,query1.FieldByName('父节点').asstring); //父节点为nil,表示是根节点 cnode:=Treeview1.Items.addchild(pnode,query1.FieldByName('子节点').asstring); //在父节点下添加子节点 query1.next; //下一条记录 end; //while end;
var
pnode,cnode:TTreeNode; //父节点,子节点变量
begin
with query1 do
begin
close;
sql.clear;
sql.add('select 父节点,子节点 from mytable');
open;
end; //with
query1.first; //到第一条记录
Treeview1.Items.Clear; //清空原来的内容
while not(query1.eof) do //循环添加节点
begin
pnode:=Treeview1.Items.addchild(nil,query1.FieldByName('父节点').asstring); //父节点为nil,表示是根节点
cnode:=Treeview1.Items.addchild(pnode,query1.FieldByName('子节点').asstring); //在父节点下添加子节点
query1.next; //下一条记录
end; //while
end;