动手生成 Delphi xe DBTreeview 三级行政图树 省市县
表结构及记录
object tarea: TFDQuery
Connection = FDConnection1
SQL.Strings = (
'select *'
'from tArea order by fParentCode')
Left = 160
Top = 240
end
object tv: TTreeView
Left = 0
Top = 0
Width = 554
Height = 320
Align = alClient
Indent = 19
TabOrder = 1
ExplicitLeft = 40
ExplicitTop = 32
ExplicitWidth = 121
ExplicitHeight = 97
end
代码
procedure TForm1.FormCreate(Sender: TObject);
var
nodes:ttreenodes;
node:ttreenode ;
CurItem ,CurItem1:Ttreenode ;
nodestr:string;
lastparent,temp:string;
i,j:integer ;
begin
TV.Items.Clear;
nodes:=TV.Items;
Tarea.Active:=true;
node:=nodes.add(nil,Tarea.FieldByName('fCode').Value+'_'+Tarea.FieldByName('fNAME').Value);
Tarea.Next;
while NOT Tarea.Eof do
BEGIN
if Tarea.FieldByName('fParentCode').AsString='' then
nodes.add(nil,Tarea.FieldByName('fCode').Value+'_'+Tarea.FieldByName('fNAME').Value); //省份
if Tarea.FieldByName('fParentCode').AsString<>lastparent then
//当前记录 fParentCode跟上条记录 fParentCode 不相等,表明是换一个父代了
//需查找
begin
CurItem := TV.Items.GetFirstNode;
while CurItem <> nil do
begin
if copy( CurItem.Text,1,pos('_',CurItem.Text)-1) =Tarea.FieldByName('fParentCode').Value then
begin
CurItem.Selected:=true;
break;
end;
CurItem := CurItem.GetNext;
end;
nodes.addCHILD(CurItem,Tarea.FieldByName('fCode').Value+'_'+Tarea.FieldByName('fNAME').Value); //
end;
if (Tarea.FieldByName('fParentCode').AsString<>'')
AND
(Tarea.FieldByName('fParentCode').AsString=lastparent)
//当前记录 fParentCode跟上条记录 fParentCode 相等,表明是同一个父代了,直接添加就行
then
BEGIN
nodes.addCHILD(CurItem,Tarea.FieldByName('fCode').Value+'_'+Tarea.FieldByName('fNAME').Value); //
END;
lastparent:= Tarea.FieldByName('fParentCode').AsString;
Tarea.Next;
END;
nodes.GetFirstNode;
end;
end.
效果如下
原文地址:https://www.cnblogs.com/jijm123/p/11336431.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- laravel 框架实现无限级分类的方法示例
- 详解Laravel5.6通过路由进行API版本控制的简单方法
- php+layui数据表格实现数据分页渲染代码
- thinkPHP框架乐观锁和悲观锁实例分析
- PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
- laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
- Laravel框架实现即点即改功能的方法分析
- PHP使用PDO实现mysql防注入功能详解
- laravel接管Dingo-api和默认的错误处理方式
- PHP接入微信H5支付的方法示例
- PHP中用Trait封装单例模式的实现
- laravel 解决Validator使用中出现的问题
- php文件上传原理与实现方法详解
- PHP常见的序列化与反序列化操作实例分析
- Laravel jwt 多表(多用户端)验证隔离的实现