Delphi动态创建树

数据结构如下:
CREATE TABLE [tbTree] (
[ID] [varchar] (4) COLLATE NOT NULL ,
[Context] [nvarchar] (50) NULL ,
[ParentID] [varchar] (4) NULL ,
CONSTRAINT [PK_tbTree] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
) ON [PRIMARY]
代码如下:

l procedure TForm1.ReadTree(tnode:TTreeNode;Fvalue: String);

l Var

l i: integer;

l Flist:TStringList;

l Flist1:TStringList;

l str:string;

l begin

l qryTree.close;

l qryTree.sql.clear;

l qryTree.sql.add('select Parentid,id,context from tbtree');

l qryTree.sql.add('where isnull(Parentid,'''')=');

l qryTree.sql.add(''''+Fvalue+'''');

l qryTree.Open;

l qryTree.First;

l Flist:=TStringList.Create;

l Flist1:=TStringList.Create;

l while not qryTree.eof do

l begin

l Flist.Add(trim(qryTree.fieldbyname('context').asstring));

l Flist1.Add(qryTree.fieldbyname('id').asstring);

l qryTree.next;

l end;

l for i:= 0 to flist.Count-1 do

l begin

l s:=flist1.Strings[i];

l str:=flist.Strings[i];

l snode:=Treeview1.items.addchild(tnode,str);

l ReadTree(snode,s);

l end;

l flist.free;

l flist1.free;

l end;

Published At
Categories with Web编程
comments powered by Disqus