aid | aname | pid |
1 | 中国 | 0 |
2 | 北京 | 1 |
3 | 上海 | 1 |
4 | 湖南 | 1 |
[code=Delphi(Pascal)]
type
Node=record
aid:string;
end;
PNode=^Node;
var
pn:PNode;
i:integer;
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from t_area order by pid');
new(pn);
try
pn.aid := '0';
tv.Items.AddObject(nil, '区域', pn);
with adoquery1 do
begin
First;
while not eof do
begin
New(pn);
pn.aid:=fieldbyname('aid').asstring;
for i:=0 to tv.items.count-1 do
begin
if pnode(tv.Items.Item[j].Data).aid= fieldbyname('pid').asstring then
tv.Items.AddChildObject(tv.Items.Item[j], fieldbyname('aname').asstring ,pn);
end;
next;
end;
end;
finally
Dispose(pn);
end;
end;
[/code]