在DELPHI中用TreeView控件从数据库中动态装载信息
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, DBCtrls, DBCGrids, ComCtrls; type PNodeInfo=^TNodeInfo; TNodeInfo=record ID:string; FullName:string; end; type TfmInfo = class(TForm) btnShowInfo: TButton; treeView1: TTreeView; ADOConnection1: TADOConnection; ADOTable1: TADOTable; ADOQuery1: TADOQuery; 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.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?