Z
zgp
Unregistered / Unconfirmed
GUEST, unregistred user!
建立一个带三级目录的目录数,由于涉及到目录树的排序问题,所以只能采取读取数据库数据
的方法。为此建立三个数据库:table1,table2,table3。其结构如下:
table1: 一级目录 0 5 9
table2: 一级目录 0 0 9 0 0 5
二级目录 0 0 0 1 2 1
table3: 一级目录 0 0 5 5 0 9 9 0
二级目录 0 0 0 0 0 0 0 1
三级目录 0 1 0 1 2 0 1 0
想通过编程在TREEVIEW中得到如下结果:
0
|__0
| |__0
| |__1
| |__2
|
|__1
| |__0
|__2
|
5__0
| |__0
| |__1
|__1
|
9__0
|__0
|__1
但编程结果一,二级目录没错,但第三级目录总是不对,现将源程序帖如下,请高手
查看错在那里。
procedure TForm1.FormCreate(Sender: TObject);
var s1,s2,s3,s4,s5:string;
parentnode,childnode:TTreenode;
begin
table1.First;
while not table1.EOF do
begin
s1:=table1.Fields[0].AsString;
parentnode:=treeview3.Items.AddChild(nil,table1.Fields[0].AsString);
table2.First;
while not table2.EOF do
begin
s2:=table2.Fields[0].AsString;
s5:=table2.Fields[1].AsString;
if s1=s2 then
childnode:=treeview3.Items.AddChild(parentnode,table2.Fields[1].AsString);
table3.First;
while not table3.EOF do
begin
s3:=table3.Fields[0].AsString;
s4:=table3.Fields[1].AsString;
if (s5=s4)and(s2=s3)
then treeview3.Items.AddChild(childnode,table3.Fields[2].AsString);
table3.Next;
end;
table2.Next;
end;
table1.Next;
end;
treeview3.FullExpand;
end;
的方法。为此建立三个数据库:table1,table2,table3。其结构如下:
table1: 一级目录 0 5 9
table2: 一级目录 0 0 9 0 0 5
二级目录 0 0 0 1 2 1
table3: 一级目录 0 0 5 5 0 9 9 0
二级目录 0 0 0 0 0 0 0 1
三级目录 0 1 0 1 2 0 1 0
想通过编程在TREEVIEW中得到如下结果:
0
|__0
| |__0
| |__1
| |__2
|
|__1
| |__0
|__2
|
5__0
| |__0
| |__1
|__1
|
9__0
|__0
|__1
但编程结果一,二级目录没错,但第三级目录总是不对,现将源程序帖如下,请高手
查看错在那里。
procedure TForm1.FormCreate(Sender: TObject);
var s1,s2,s3,s4,s5:string;
parentnode,childnode:TTreenode;
begin
table1.First;
while not table1.EOF do
begin
s1:=table1.Fields[0].AsString;
parentnode:=treeview3.Items.AddChild(nil,table1.Fields[0].AsString);
table2.First;
while not table2.EOF do
begin
s2:=table2.Fields[0].AsString;
s5:=table2.Fields[1].AsString;
if s1=s2 then
childnode:=treeview3.Items.AddChild(parentnode,table2.Fields[1].AsString);
table3.First;
while not table3.EOF do
begin
s3:=table3.Fields[0].AsString;
s4:=table3.Fields[1].AsString;
if (s5=s4)and(s2=s3)
then treeview3.Items.AddChild(childnode,table3.Fields[2].AsString);
table3.Next;
end;
table2.Next;
end;
table1.Next;
end;
treeview3.FullExpand;
end;