我只知道如何生成两层的树结构:
如1
  |---1
   ---2
  2
  |---5
可是我想生成三层,或四层就不懂了。
如1
  |---1
   ---2
  2
  |---5
         |---11
          ---51请教 谢谢!
问题简单,分数也不多,但请帮忙,谢谢!

解决方案 »

  1.   

    欢迎大家加入DELPHI程序员群1805366 ,一起交流技术!
      

  2.   

    1
    首先,在单元接口部分声明一记录类型及其指针,用来保存你的树节点需传递的信息。
    type
      pchar=^str;
      str=record
        tcaption:string;
        num:integer;
      end;
    然后用递归写一生成树的函数,这里要注意算法了
    2
    可以试试第三方控件
    ExpressDBTree
      

  3.   

    前段時間剛問過這個問題,已經解決了,代碼如下
    ----------------數據表------------------
    id     upid    name
    1       0       一級目錄1
    3       1       二級目錄1
    2       3       三級目錄1
    5       0       一級目錄2
    4       5       二級目錄2
    1       0       一級目錄3
    ----------------程序如下------------------
    //定義目錄樹指針
    type
      pmyid = ^Tpmyid;
      Tpmyid = record
        nodeid: string;
        nodename: string;
      end;
    ...........
    //遞歸載入子目錄
    procedure TfrmMain.ReadNode(ownNode: TTreeNode; NodeId: string);
    //OwnNode:Pater node  NodeId:self nodeid;
    var
      curNode: TtreeNode;
      curID, curName: string;
      adoquery: TAdoQuery;
      myid: pmyid;
    begin
      adoquery := Tadoquery.create(parent);
      adoquery.Connection := AdoCon;
      adoquery.sql.text := 'select * from tree1 where up_id=''' + NodeID + '''';
      with adoquery do
      begin
        open;
        first;
        while not eof do
        begin
          curID := FieldByName('id').AsString;
          curName := fieldByName('Crop_name').AsString;
          new(myid);
          myid^.nodeid := curID;
          myid^.nodename := curName;
          curNode := treeview1.Items.AddChildObject(ownNode, curName, myid);
          ReadNode(curNode, curid);
          next;
        end;
        close;
        free;
      end;
    end;
    //載入根目錄
    procedure TfrmMain.LoadData;
    var
      CurNode:TTreeNode;
      MyID:pMyID;
    begin
      new(MyID);
      MyID^.nodeid:='0';
      CurNode:=Treeview1.Items.AddChildObject(nil,'公司',MyID);  //?入根??
      ReadNode(CurNode,'0');
    end;
    -----------------------------------------