TREEVIEW生成树

PTNodeInfo=^TNodeInfo;
  TNodeInfo=record
   id,preId,text:string;
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
 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;
posted @ 2008-12-11 17:37  vincent.lee  阅读(188)  评论(0编辑  收藏  举报