我从表中根据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;

解决方案 »

  1.   

    treeview1.Items.AddChild(itemnode,valuse)
    itemnode就是它的父节点,valuse就是要显示的内容
      

  2.   

    我程序里的一段,可以实现无限层:
    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;