Access表中有ID号、父ID号、类别'这三个字段,具有相同父ID号的一定归属于同一上层,而父ID号为0的一定是根级的直接下属。'类别'字段内容为'层'的说明是树枝而不是页。如何根据这样的表创建TreeView?谢谢指教

解决方案 »

  1.   

    思路:
    做个递归过程建立树,大概如下(代码是示范性质,没有经过编译,根据你的情况进行修改)://生成标识为id的记录及其下级记录的树枝
    //parent为新生成的树枝的根
    //使用时你首先在TreeView中创建一个树根,调用这个过程
    procedure buildTree(ParentID: integer; ParentNode: TTreeNode = nil);
    var
      aqTemp: TAdoQuery;
      tn: TTreeNode;
    begin
      aqTemp := TAdoquery.Create();
      aqTemp.Connection := MyConnection;
      aqTemp.SQL.Add('select * from ATable where ParentID = ' + IntToStr(ParendID));
      aqTemp.Open();
      while not aqTemp.Eof do
      begin
        tn := TreeView.Items.AddChild(ParentID, aqTemp.FieldByName('id').AsString);
        buildTree(aqTemp.FieldByName('id').AsInteger, tn);
        aqTemp.Next();
      end;
      aqTemp.Free();
    end;
      

  2.   

    直接用dbtreeview吧,在devexpress、jvcl、raize等控件中都有,在www.delphifans.com有下