当然可以。
yourSelectNode := Treeview1.Items.Add(nil, '选择题');
while not yourdataset.eof do
begin
  treeview1.items.AddChild(yourSelectNode, yourdataset.FieldByName('Title').AsString);
  yourdataset.next;
end;

解决方案 »

  1.   

    后台ACCESS数据库,我的例子:
    procedure TForm5.LoadTreeView;
    var
      strsql: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 NodeType="bs"';
        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 TForm5.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;procedure TForm5.FormShow(Sender: TObject);
    begin
      LoadTreeView;
      rzTreeView1.TopItem.Expanded:=true;
    end;