标签:结点 end Delphi begin FullName TreeView ID procedure 加载
unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, DB, ADODB, StdCtrls; type PNodeInfo=^TNodeInfo; TNodeInfo=record ID:string; FullName:string; Url:string; end; TForm3 = class(TForm) ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; TreeView1: TTreeView; Button1: TButton; procedure CreateChildTree(ParentNode: TTreeNode); procedure CreateViewTree(Sender: TObject); procedure Button1Click(Sender: TObject); procedure TreeView1DblClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation {$R *.dfm} procedure TForm3.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,Url 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; ChildNodeInfo^.Url:=FieldByName('Url').AsString; ChildNode:=TreeView1.Items.AddChildObject(ParentNode,(ChildNodeInfo^.FullName),ChildNodeInfo); //添加孩子结点,并关联孩子结点信息 CreateChildTree(ChildNode); //进行递归 Next; end; Close; end; end; procedure TForm3.CreateViewTree(Sender: TObject); var BootNode:TTreeNode; //根结点 BootNodeInfo:PNodeInfo; //根结点信息 begin with ADOQuery1 do begin SQL.Clear; SQL.Add('SELECT ID,FullName,Url FROM PInfo WHERE ParentID IS NULL'); //获取根结点信息 Open; New(BootNodeInfo); BootNodeInfo^.ID:=FieldByName('ID').AsString; BootNodeInfo^.FullName:=FieldByName('FullName').AsString; BootNodeInfo^.Url:=FieldByName('Url').AsString; TreeView1.Items.Clear; BootNode:=TreeView1.Items.AddChildObject(nil,(BootNodeInfo^.FullName),BootNodeInfo); //添加根结点,并关联根结点信息 Close; end; CreateChildTree(BootNode); //创建子树 TreeView1.FullExpand; //展开所有树结点 end; procedure TForm3.Button1Click(Sender: TObject); begin CreateViewTree(Sender); end; procedure TForm3.TreeView1DblClick(Sender: TObject); var TNode:TTreeNode; X,Y:Integer; begin //获取双击的结点 with TreeView1 do begin X:=ScreenToClient(Mouse.CursorPos).X; Y:=ScreenToClient(Mouse.CursorPos).Y; TNode:=GetNodeAt(X,Y); end; if (TNode<>nil) and (TNode=TreeView1.Selected) then ShowMessage(PNodeInfo(TNode.Data)^.Url); //显示双击结点的信息 end; end.
标签:结点,end,Delphi,begin,FullName,TreeView,ID,procedure,加载 来源: https://www.cnblogs.com/jijm123/p/11408413.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。