树的动态查询生成

procedure ReadTree(tnode: TTreeNode; Fvalue: Integer);

procedure TForm1.Button5Click(Sender: TObject); begin   ReadTree(nil,0); end;

procedure TForm1.ReadTree(tnode:TTreeNode;Fvalue: Integer); Var   i: integer;   Flist:TStringList;   Flist1:TStringList;   s,str:string;   snode:TTreeNode; begin   with ADOQuery1 do   begin     close;     sql.clear;     sql.add('select dep_parent,dep_serial,dep_name from dt_dep where dep_parent=:v1 ');     Parameters.ParamByName('V1').Value:=Fvalue;     Open;     First;   end;   Flist:=TStringList.Create;   Flist1:=TStringList.Create;   while not ADOQuery1.eof do     begin       Flist.Add(trim(ADOQuery1.fieldbyname('dep_name').asstring));       Flist1.Add(ADOQuery1.fieldbyname('dep_serial').AsString);       ADOQuery1.next;     end;     for i:= 0 to flist.Count-1 do     begin       s:=flist1.Strings[i];       str:=flist.Strings[i];       snode:=Treeview1.items.addchild(tnode,str);       ReadTree(snode,strtoint(s));     end;   flist.free;   flist1.free; end;

如果嫌这样麻烦或数据量大对速度要求严格,可以摒弃类似这种递归的方法 可先查询生成文件 Tree.txt 然后 LoadFromFile() 来实现

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值