加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在DELPHI中用TreeView控件从数据库中动态装载信息

发布时间:2020-12-15 09:10:31 所属栏目:大数据 来源:网络整理
导读:1.PInfo表结构ID VARCHAR(50)FullName VARCHAR(50)ParentID VARCHAR(50)2.Unit文件unit Info;interfaceuses? Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ComCtrls,DB,ADODB;type? PNodeInfo=^TNodeInfo;? TNodeI

1.PInfo表结构ID VARCHAR(50)FullName VARCHAR(50)ParentID VARCHAR(50)2.Unit文件unit Info;interfaceuses? 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.??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读