TREEVIEW生成树
PTNodeInfo=^TNodeInfo;
TNodeInfo=record
id,preId,text:string;
end;
TNodeInfo=record
id,preId,text:string;
end;
var
Form1: TForm1;
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CreateTree1;
procedure TForm1.CreateTree1;
procedure CreateTree(Pre:string;preNode:TTreeNode);
var
pInfo:PTNodeInfo;
node:TTreeNode;
Query:TADOQUery;
begin
Query:=TADOQuery.Create(nil);
Query.connection:=adoconnection1;
Query.Close;
Query.SQL.text:= Format('select * from tree where pid=%s order by id', [QuotedStr(pre)]);
Query.Open;
Query.First;
while not Query.Eof do
begin
new(pInfo);
pInfo.id:=Query.Fields[0].AsString;
pInfo.preId:=Query.Fields[1].AsString;
pInfo.text:=Query.Fields[2].AsString;
node:=treeview1.Items.AddChild(preNode,pInfo.id);
node.Data:=pInfo;
CreateTree(pInfo.id,node);
Query.Next;
end;
Query.Close;
Query.Free;
end;
begin
createTree('',nil);
treeview1.FullExpand;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
createtree1;
end;
var
pInfo:PTNodeInfo;
node:TTreeNode;
Query:TADOQUery;
begin
Query:=TADOQuery.Create(nil);
Query.connection:=adoconnection1;
Query.Close;
Query.SQL.text:= Format('select * from tree where pid=%s order by id', [QuotedStr(pre)]);
Query.Open;
Query.First;
while not Query.Eof do
begin
new(pInfo);
pInfo.id:=Query.Fields[0].AsString;
pInfo.preId:=Query.Fields[1].AsString;
pInfo.text:=Query.Fields[2].AsString;
node:=treeview1.Items.AddChild(preNode,pInfo.id);
node.Data:=pInfo;
CreateTree(pInfo.id,node);
Query.Next;
end;
Query.Close;
Query.Free;
end;
begin
createTree('',nil);
treeview1.FullExpand;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
createtree1;
end;