1.PInfo表结构
ID VARCHAR(50)
FullName VARCHAR(50)
ParentID VARCHAR(50)

2.Unit文件
unit Info;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, DB, ADODB;

type
  PNodeInfo=^TNodeInfo;
  TNodeInfo=record
    ID:string;
    FullName:string;
  end;

TfmInfo = class(TForm)
    TreeView1: TTreeView;
    btnShowInfo: TButton;
    ADOQuery1: TADOQuery;
    ADOConnection1: TADOConnection;
    procedure CreateChildTree(ParentNode: TTreeNode);
    procedure btnShowInfoClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fmInfo: TfmInfo;

implementation

{$R *.dfm}

//创建子树
procedure TfmInfo.CreateChildTree(ParentNode: TTreeNode);
var
  Query:TADOQuery;
  ChildNode:TTreeNode; //孩子结点
  ChildNodeInfo:PNodeInfo; //孩子结点信息
begin
  Query:=TADOQuery.Create(nil);
  with Query do
  begin
    Connection:=ADOConnection1;
    SQL.Add('SELECT ID,FullName FROM PInfo WHERE ParentID = '''+PNodeInfo(ParentNode.Data)^.ID+''''); //获取孩子结点信息
    Open;

while not Eof do
    begin
      New(ChildNodeInfo);
      ChildNodeInfo^.ID:=FieldByName('ID').AsString;
      ChildNodeInfo^.FullName:=FieldByName('FullName').AsString;

ChildNode:=TreeView1.Items.AddChildObject(ParentNode,(ChildNodeInfo^.ID+ChildNodeInfo^.FullName),ChildNodeInfo); //添加孩子结点,并关联孩子结点信息

CreateChildTree(ChildNode); //进行递归

Next;
    end;

Close;
  end;
end;

procedure TfmInfo.btnShowInfoClick(Sender: TObject);
var
  BootNode:TTreeNode; //根结点
  BootNodeInfo:PNodeInfo; //根结点信息
begin
  with ADOQuery1 do
  begin
    SQL.Clear;
    SQL.Add('SELECT ID,FullName FROM PInfo WHERE ParentID IS NULL'); //获取根结点信息
    Open;

New(BootNodeInfo);
    BootNodeInfo^.ID:=FieldByName('ID').AsString;
    BootNodeInfo^.FullName:=FieldByName('FullName').AsString;

TreeView1.Items.Clear;
    BootNode:=TreeView1.Items.AddChildObject(nil,(BootNodeInfo^.ID+BootNodeInfo^.FullName),BootNodeInfo); //添加根结点,并关联根结点信息

Close;
  end;

CreateChildTree(BootNode); //创建子树
  TreeView1.FullExpand; //展开所有树结点
end;

end.

最新文章

  1. Linux From Scratch(从零开始构建Linux系统,简称LFS)- Version 7.7(三)
  2. Orchard Application Host
  3. BugTracker 加入发Mail的功能
  4. <转载>NPOI Excel 单元格背景颜色对照表
  5. Android.mk学习 笔记
  6. C语言中 scanf 和 printf 的小要点
  7. 使用angular的ng-repeat遇到的一个问题
  8. 通过sql做数据透视表,数据库表行列转换(pivot和Unpivot用法)(一)
  9. 定义文字用em、rem,效果和px一样
  10. Android 开源项目 eoe 社区 Android 客户端(转)
  11. 简单明了查看内存使用和ubuntu的版本号及位数
  12. vijos1698题解
  13. awk删除最后一个字符
  14. 8-unittest中case管理
  15. python random函数
  16. L1-027 出租(20)(STL-map代码)
  17. 关于Java抽象类,接口与实现接口及派生类继承基类
  18. 【IT笔试面试题整理】给定一个数组a[N]构造数组b [N]
  19. Linux命令(一) pwd ,cd
  20. ASP.NET MVC 4 (四) 控制器扩展

热门文章

  1. JAVA Calendar类获取上个月的第一天和最后一天
  2. MySQL快速生成100W条测试数据
  3. appium+python 【Mac】UI自动化测试封装框架介绍 <四>---脚本的调试
  4. pandas处理json脱坑(二)--jsonError: Expecting ',' delimiter: line 1 column 2674
  5. Java8-Lambda-No.03
  6. Miller-Rabin素性测试
  7. 牛客练习赛51 D题
  8. c#简单的SQLHelp
  9. TCP SACK 介绍 转载
  10. python3安装web.py