treeview自动从表中添加标题和列值做目录的方法2

treeview自动从表中添加标题和列值做目录的方法2,该方法是借鉴万一老师的

http://www.cnblogs.com/del/archive/2008/05/15/1114450.html

 

首先界面上添加treeview组件,然后在treeview的onchange事件里这样写:

因为要用到定义个过程,需要在接口声明里引用

 
  private{ Private declarations }/// <summary>/// 刷新左侧treeView/// </summary>procedure RefreshLeftTree(Sender: TObject);public{ Public declarations }end;
 
procedure TForm3.RefreshLeftTree(Sender: TObject);
vari: Integer;node: TTreeNode;List: TStringList;s,fieldName: string;
begin//刷新前全部清空原来的列表
  TreeView1.Items.Clear;{建立 List}List := TStringList.Create;List.Sorted := True;           {指定排序}List.Duplicates := dupIgnore;  {避免重复}{把数据加入到 TreeView}for i := 0 to frmDataPool.qry需要做的事.FieldDefs.Count - 1 dobeginfieldName := frmDataPool.qry需要做的事.FieldDefs[i].Name;if not 'ID说明附件事情'.Contains(fieldName) thenbeginnode := TreeView1.Items.Add(nil, fieldName); {字段名}{为避免数据重复, 先把数据给 List}List.Clear;frmDataPool.qry需要做的事.First;while not frmDataPool.qry需要做的事.Eof dobeginList.Add(frmDataPool.qry需要做的事.FieldByName(fieldName).AsString);frmDataPool.qry需要做的事.Next;end;{把 List 中的数据加入到 TreeView}for s in List dobeginTreeView1.Items.AddChild(node, s);end;end;end;List.Free;
end;

且增加新记录后也要刷新下目录才合理

procedure TForm3.Button3Click(Sender: TObject);
begin
Form4.ShowModal;//showmodal可以确保这个窗口关闭后才执行下一步
//增加后刷新下
RefreshLeftTree(Sender);
end;

 

onchange的触发事件代码:

procedure TForm3.TreeView1Change(Sender: TObject; Node: TTreeNode);
beginif Node.Parent <> nil thenbegin{下面的 Filter 其实就是 SQL 查询语句, 如果用其他数据库替换就是}frmDataPool.qry需要做的事.Filter := Node.Parent.Text + '=''' + Node.Text + '''';frmDataPool.qry需要做的事.Filtered := True;end else frmDataPool.qry需要做的事.Filtered := False; {选字段名时取消过虑}
end;

 

 

转载于:https://www.cnblogs.com/chuangyiyuan/p/6042193.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux常用运维命令笔记

今天给大家整理一下Linux常用的命令&#xff0c;希望对大家能有所帮助&#xff01;MYSQL相关1、查看mysql版本status; select version()2、 mysql启动命令#01 使用 service 启动&#xff1a;service mysqld start (5.0版本) service mysql start (5.5.7版本) #02 使用 mysqld 脚…

java 异常 过滤器_在过滤器Filter中抛出一个全局异常可以捕获的异常

1、创建自定义异常public class TokenException extends RuntimeException {private static final long serialVersionUID 1L;private Integer errCode;private String message;public TokenException(Integer errCode){this.errCode errCode;this.message ExceptionEnum.ge…

php对二维数据进行排序

PHP一维数组的排序可以用sort()&#xff0c;asort(),arsort()等函数&#xff0c;但是PHP二维数组的排序需要自定义。方法一&#xff1a;(经验证&#xff0c;成功) 作用&#xff1a;对二维数组进行指定key排序参数&#xff1a;$arr 二维数组 &#xff0c;$shortKey 需要排序的列…

电脑知识:如何将旧电脑文件迁移到新电脑中,包括操作系统

将旧电脑中的文件和操作系统全部转移到新电脑中&#xff0c;一般可以借助分区助手、磁盘精灵或者GHOST等磁盘工具。为了提高数据传输速度&#xff0c;可以将旧电脑的硬盘拆下安装到新电脑&#xff0c;然后使用PE工具盘引导电脑进入PE系统中&#xff0c;将旧电脑硬盘中的数据借助…

判断是否为自然数java_java判断输入的是否是自然数

/** * 编写一个Java应用程序的方法&#xff0c;该方法接收从键盘输入的自然数: * 如果输入的数不是自然数。抛出异常&#xff0c;提示“请正确输入数字!”&#xff0c;然后继续等待用户输入。 * 如果输入的数为正数,则显示这个数,程序继续运行。 * 如果输入为负数&#xff…

浏览器插件:一款解决谷歌浏览器吃内存神器插件

Chrome浏览器是大部分开发者必备的浏览器&#xff0c;它的主要有点有便于调试、启动快、无广告。但是谷歌浏览器也有自己的缺点&#xff0c;Chrome浏览器对系统内存的占用太大了&#xff0c;每打开一个页面都会占用系统内存。如果你的浏览器一下子打开几十个网页&#xff0c;不…

java stdin 和stdout_对stdin,stdout 和STDOUT_FILENO,STDIN_FILENO的学习

在unix系统调用中,标准输入描述字用stdin,标准输出用stdout,标准出错用stderr表示,但在一些调用函数,引用了STDIN_FILENO表示标准输入才,同样,标准出入用STDOUT_FILENO,标准出错用STDERR_FILENO.他们的区别&#xff1a;stdin等是FILE *类型&#xff0c;属于标准I/O&#xff0c;…

java多线程之hashmap concurrenthashmap的状态同步

最近在高并发的系统中发现&#xff0c;concurrenthashmap除了大家熟知的避免循环期间发生ConcurrentModificationException异常外&#xff0c;还有重要的一点是Retrievals reflect the results of the most recently completed update operations holding upon their onset&…

电脑软件:推荐两款好用的文件重复检测软件

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

APP技巧:微信中这6个设置建议关闭,可以防止个人信息或将全暴露

目录 01、 开启添加好友验证功能 02、 添加“我”的方式 03、不让他&#xff08;她&#xff09;看 04、允许陌生人查看10条朋友圈 05、 设置查看朋友圈范围 06、微信授权管理 相信提到微信&#xff0c;大家基本每天都在用&#xff0c;如今微信已经成为了我们社交软件中的第一大…

lessc_Less 命令行用法

使用命令行&#xff0c;我们可以将 .less 文件编译为 .css 。安装lessc以供全局使用以下命令用于使用npm(node package manager)安装lessc&#xff0c;以使less在全局可用。npm install less -g您还可以在包名称后面添加特定版本。 例如: npm install less1.6.2 -g安装Lessc用于…

硬件知识:内存单根16G和两根8G差别有多大?

关于内存单根16G和两根8G的差别&#xff0c;小编觉得这些事实&#xff0c;你得知道&#xff01; 论单根16G和两根8G的区别&#xff01; 内存单通道和双通道&#xff0c;大家都有听过吧&#xff01; 理解起来很简单&#xff0c;一个单通道&#xff0c;只能进行单向传输数据&…

极光推送总结:

官方文档&#xff1a; http://docs.jiguang.cn/jpush/client/Android/android_sdk/ 手动集成步骤&#xff1a; 解压缩 jpush-android-release-2.x.y.zip 集成压缩包。复制 libs/jpush-sdk-2.x.y.jar 到工程 libs/ 目录下。复制 libs/(cpu-type)/libjpush2xy.so 到你的工程中存放…

操作系统:Win10的沙盒是什么,如何使用,看完你就懂了

Win10操作系统新增的windows沙盒是一种安全机制&#xff0c;为执行中的程式提供的隔离环境。通常是作为一些来源不可信、具有破坏力或无法判定程序意图的应用程序提供实验之用。很多网友想要通过沙盒运行一些未知的程序&#xff0c;但是不知道windows沙盒如何开启使用&#xff…

线程的调度

http://blog.chinaunix.net/uid-26430381-id-3746859.html 这篇文章解释的很好转载于:https://www.cnblogs.com/yzjT-mac/p/6054517.html