to :iamduo 双击MasterBand 修改那个行数。 rowcount:哪个是控制显示有多少行,好象不行 ----------- procedure TForm1.Button15Click(Sender: TObject); var mynode:TTreenode; begin treeview1.Items.BeginUpdate; AdoQuery1.Close ; AdoQuery1.SQL.Clear ; AdoQuery1.SQL.Add( 'select * from department '); AdoQuery1.Open ; while not adoquery1.Eof do begin mynode:=treeview1.Items.Add(nil,adoquery1.fieldbyname( 'dept_code ').AsString); with adoquery2 do begin close; sql.Clear; sql.Add( 'select * from computer where department= ' ' '+adoquery1.fieldbyname( 'dept_code ').AsString+ ' ' ' '); open; end; while not adoquery2.Eof do begin Treeview1.Items.AddChild(mynode,adoquery2.fieldbyname( 'computer_name ').AsString); adoquery2.Next; end; adoquery1.Next; end; treeview1.Items.EndUpdate; treeview1.Update; end; end. 测试通过,,仿照一下,,应该没有问题
type
TreeNode=^node;
node=record
data:string;
lch,rch:TreeNode;
end;
2。遍历树,如果某个节点之后有兄弟节点,那么这个节点的rch指向该兄弟节点;如果某个节点有子节点,那么这个节点的lch指向它的第一个子节点
1.建一个2维树组
为表格形式 a[2,n]
-------|-------
|parent| 数据 |
-------|-------
2.通过递归遍历并存放每个节点的的父节点和其数据,根节点的parent为空
这样以后你就可以再画出树了
双击MasterBand 修改那个行数。
rowcount:哪个是控制显示有多少行,好象不行
-----------
procedure TForm1.Button15Click(Sender: TObject);
var
mynode:TTreenode;
begin
treeview1.Items.BeginUpdate;
AdoQuery1.Close ;
AdoQuery1.SQL.Clear ;
AdoQuery1.SQL.Add( 'select * from department ');
AdoQuery1.Open ;
while not adoquery1.Eof do
begin
mynode:=treeview1.Items.Add(nil,adoquery1.fieldbyname( 'dept_code ').AsString);
with adoquery2 do
begin
close;
sql.Clear;
sql.Add( 'select * from computer where department= ' ' '+adoquery1.fieldbyname( 'dept_code ').AsString+ ' ' ' ');
open;
end;
while not adoquery2.Eof do
begin
Treeview1.Items.AddChild(mynode,adoquery2.fieldbyname( 'computer_name ').AsString);
adoquery2.Next;
end;
adoquery1.Next;
end;
treeview1.Items.EndUpdate;
treeview1.Update;
end;
end.
测试通过,,仿照一下,,应该没有问题
dept_code deptname
1 财务部
2 行政部 computer 表
computer_name computer_user department ip_address
xyl001 张三 1 192.168.1.101
xyl002 李四 2 192.168.1.102
说清楚点就是一个已经建好的Treeview,通过遍历Treeview建类似的二叉链结构
type
TreeNode=^node;
node=record
data:string;
lch,rch:TreeNode;
end;
不过我不会实现..