我从表中根据level属性来创建treeview的目录,可是不知道树型目录是怎么动态创建的,书上的那个例子讲的是删除,不知道那位大侠能指点一二,
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
d:TTreeNode;
begin
with table1 do
begin
close;
Filtered:=false;
filter:=’LEVEL=’+#39+’1’+#39;
Filtered:=true;
open;
end;
Table1.First;
while not Table1.Eof do
begin
// Treeview1.Items[i].Create(d);
Table1.Next;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
d:TTreeNode;
begin
with table1 do
begin
close;
Filtered:=false;
filter:=’LEVEL=’+#39+’1’+#39;
Filtered:=true;
open;
end;
Table1.First;
while not Table1.Eof do
begin
// Treeview1.Items[i].Create(d);
Table1.Next;
end;
end;
itemnode就是它的父节点,valuse就是要显示的内容
procedure TMDIChild.LoadTreeView;
var
strsql,tid:string;
begin
try
DataModule3.ADOTable3.open;
DataModule3.ADOTable3.Locate('DTname',RzComboBox1.Text,[lopartialkey]);
tid:=inttostr(DataModule3.ADOTable3.FieldByName('id').value);
strsql:='select * from T where TypeID='+tid;
DQ.Active :=false;
DQ.SQL.Clear ;
DQ.SQL.Add(strsql);
DQ.Active :=true;
DQ.Filtered :=true;
DQ.Filter := 'Parent=0';
U_DiGui(0,RzTreeView1.TopItem );//´Óµ±Ç°0²ã¿ªÊ¼µÝ¹é½¨Ê÷
except
showmessage('×ÖµäÀïûÓÐÊý¾Ý£¡');
end;
end;
procedure TMDIChild.U_DiGui(parentID:Cardinal;ParentNode:TTreeNode);
var
tmpTBData:array of TableData;
i,j:integer;
tmpNode:TTreeNode;begin
j:=DQ.RecordCount;
setlength(tmpTBData,j);//±£´æµÝ¹æÉÏÒ»²ã½áµãÖµ
for i:=0 to j-1 do begin
tmpTBData[i].ID := Cardinal(DQ.fieldbyname('ID').value);
tmpTBData[i].Name := DQ.fieldbyname('Name').value;
tmpTBData[i].ParentID := Cardinal(DQ.fieldbyname('Parent').value);
DQ.Next;
end;
for i:=0 to j-1 do begin //µÝ¹æµ÷Óý¨Á¢ËùÓнáµã
tmpNode:=RzTreeView1.Items.AddChild(ParentNode,tmpTBData[i].Name);
// tmpNode.ImageIndex:=2;
new(pData);
pData^.ID:=tmpTBData[i].ID;
tmpNode.Data:=pData;
DQ.Filter := 'Parent=' + IntToStr(Integer(tmpTBData[i].ID));
if DQ.RecordCount >0 then begin
U_DiGui(tmpTBData[i].ID,tmpNode );
end;
end;
end;