网上有很多dbtreeview的控件,不知道大家是怎么实现treeview和数据库相关联的,这个在数据库的应用程序中间应该是比较经常用到的一个技术.做数据库经常用得上.

解决方案 »

  1.   

    你可以看看《delphi6企业级应用解决方案》的例子
      

  2.   

    谢谢,这本书确实不错,下载了5的电子版看,有时间去买个纸版的,请问rouqing还有其他好书推荐吗?
      

  3.   

    首先,数据表中要有3个字段、id、parentid、name
    然后设置DBTreeView的3个属性parentfield、listfield、keyfield就可以了!
      

  4.   

    DBTreeView就搞定啦,呵呵http://lysoft.7u7.net
      

  5.   

    首先,数据表中要有3个字段、id、parentid、name贴一小段我的代码:(简单用法,用 TTreeNode 的 Data ,常用的方法是让 data指向一个对象,或结构体)procedure TfrmDepartEmp.BuildTree;
    var
      tNode :TTreeNode;
    begin
      if dsDept.Active then dsDept.Close;  dsDept.CommandText := 'select * from Departments';
      dsDept.Open;
      tNode := treeDept.Items.AddChild(nil,'你的公司');
      tNode.Data := Pointer(0);
      tNode.ImageIndex := 0;
      tNode.SelectedIndex := 1;
      TreeMe(tNode);
    end;
    procedure TfrmDepartEmp.TreeMe(tNode: TTreeNode);
    var
      ParentID : Longint;
      childNode : TTreeNode;
    begin
      ParentID := Integer(tNode.Data );
      dsDept.First;
      while not dsDept.Eof do
      begin
        if dsDept.FieldByName('ParentID').AsInteger = ParentID then
        begin
           childNode := TreeDept.Items.AddChild(tNode,
                     dsDept.FieldByName('DeptName').AsString);
           childNode.Data := Pointer(dsDept.FieldByName('DeptID').AsInteger);
           childNode.ImageIndex := 0;
           childNode.SelectedIndex := 1;
           //TreeMe(childNode);
        end;
        dsDept.Next;
      end;  childNode := tNode.getFirstChild;
      while childNode <> nil do
      begin
         TreeMe(childNode);
         childNode := childNode.getNextSibling;
      end;end;