PROCEDURE TForm1.newtreeview(Node:TTreeNode;ID,Name:String);
var
tmpNode : TTreeNode;
ADOquery1 : TADOQuery;
Begin
//Treeview1。。。添加部门名称;
//Treeview1。。。添加附带数据部门ID
tmpNode := TreeView1.Items.AddChild(Node,Name);
ADOQuery1 := TADOQuery.Create(self);
ADOQuery1.Connection := ADOConnection1;
ADOQuery1.close;
ADOQuery1.SQL.clear;
ADOQuery1.SQL.Text := 'select * from 部门表 where 上级部门ID='+ID;
ADOQuery1.open;
If ADOQuery1.recordcount > 0 then
Begin
//Treeview1。。。准备添加子节点
ADOQuery1.First;
while not ADOQuery1.Eof do
Begin
Newtreeview(tmpNode,ADOQuery1.FieldByName('ID').AsString,
ADOQuery1.FieldByName('部门名称').AsString);
ADOQuery1.next;
End;
End;
End;
如果有三層,定義這樣阿 firstnode,secondnode
eg:
adoquery1.Close;
adoquery1.sql.clear;
adoquery1.sql.add('select primaryField,others from table order by primaryField');
adoquery1.Open ;
FirstNode:=treeview1.Items.Add(nil,'MyItems');
while not adoquery1.Eof do
begin
Secondnode:=treeview1.Items.Add(FirstNode,adoquery1.fieldbyname('primaryField').asstring);
adoquery1.Next ;
end;
treeview1.FullExpand;
類試這樣來添加樹結果