Delphi 中递归生成TreeView节点的方法
来源:互联网 发布:linux查看log日志命令 编辑:程序博客网 时间:2024/05/19 23:24
在数据库中建一张表,包含:NodeName,NodeId,ParentId 3个字段,具体什么含义,一看就知了。
过程如下:
procedure TFRM_channel.formtreenode(parentid:string;TreeView1: TTreeView;parentnode:TTreeNode;ADOQuery1:TADOQuery);
var
i:integer;
treenode:TTreeNode;
begin
i:=0;
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
if ADOQuery1.FieldByName('ParentId').AsString=parentid then
begin
treenode:=TreeView1.Items.AddChild(parentnode,ADOQuery1.fieldbyname('NodeName').AsString);
formtreenode(ADOQuery1.fieldbyname('NodeId').AsString ,TreeView1,treenode,ADOQuery1);
end;
inc(i);
ADOQuery1.First;
ADOQuery1.MoveBy(i);
end;
end;
在调用如下,如在窗体的create事件中:
procedure TFRM_channel.FormCreate(Sender: TObject);
var
TreeNode1:TTreeNode;
i:integer;
nodename:string;
nodeid:string;
parentid:string;
cmdstr:string;
begin
//初始化树形节点
ADOQuery1.ConnectionString:=mypublic.datastr;
cmdstr:='select * from ChanTreeNode order by ParentId ,NodeId asc';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(cmdstr);
ADOQuery1.Open;
TreeNode1:=nil;
formtreenode('000',TreeView1,TreeNode1,ADOQuery1);
end;
每天早上敲醒自己的不是闹钟,是夢想!
在数据库中建一张表,包含:NodeName,NodeId,ParentId 3个字段,具体什么含义,一看就知了。
过程如下:
procedure TFRM_channel.formtreenode(parentid:string;TreeView1: TTreeView;parentnode:TTreeNode;ADOQuery1:TADOQuery);
var
i:integer;
treenode:TTreeNode;
begin
i:=0;
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
if ADOQuery1.FieldByName('ParentId').AsString=parentid then
begin
treenode:=TreeView1.Items.AddChild(parentnode,ADOQuery1.fieldbyname('NodeName').AsString);
formtreenode(ADOQuery1.fieldbyname('NodeId').AsString ,TreeView1,treenode,ADOQuery1);
end;
inc(i);
ADOQuery1.First;
ADOQuery1.MoveBy(i);
end;
end;
在调用如下,如在窗体的create事件中:
procedure TFRM_channel.FormCreate(Sender: TObject);
var
TreeNode1:TTreeNode;
i:integer;
nodename:string;
nodeid:string;
parentid:string;
cmdstr:string;
begin
//初始化树形节点
ADOQuery1.ConnectionString:=mypublic.datastr;
cmdstr:='select * from ChanTreeNode order by ParentId ,NodeId asc';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(cmdstr);
ADOQuery1.Open;
TreeNode1:=nil;
formtreenode('000',TreeView1,TreeNode1,ADOQuery1);
end;
- Delphi 中递归生成TreeView节点的方法
- Delphi 中递归生成TreeView节点的方法
- 使用递归方法获得TreeView中CheckBox选中的节点
- delphi 递归遍历TreeView树节点
- delphi TreeView 从数据库添加节点的四种方法
- b/s中treeview的递归删除节点
- Delphi 修改TreeView的节点高度
- delphi treeview添加节点
- Delphi TreeView的GetHitTestInfoAt()方法
- 详谈Winform中TreeView节点定位的实现方法
- treeview递归绑定节点
- TreeView递归添加节点
- c# winform结合数据库动态生成treeview的父节点和子节点方法和思路
- treeview 节点 父节点 递归
- delphi 遍历treeview某个节点下所有节点的函数
- delphi 遍历Treeview特定节点下的所有节点
- delphi 遍历treeview某个节点下所有节点的函数
- delphi 遍历treeview某个节点下所有节点的函数
- Android 实现双击退出 支持多击/自定义延迟时间
- 有符号数据类型的最小值问题丨C
- Fast-RCNN
- defer和async的区别
- 《OpenCV3编程入门》学习笔记番外篇之图像形态学处理
- Delphi 中递归生成TreeView节点的方法
- 混淆教程锦集
- 7个js基础知识总结
- CSS 属性之中经常出现的百分比
- c++概述
- 多态
- 从头到尾彻底理解KMP
- Java网络编程第二章-流
- 语句 数组 String类常用操作方法