本例效果图:


unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Grids, DBGrids, DB, DBClient, StdCtrls, ComCtrls, ExtCtrls;typeTForm1 = class(TForm)DataSource1: TDataSource;ClientDataSet1: TClientDataSet;DBGrid1: TDBGrid;TreeView1: TTreeView;Splitter1: TSplitter;procedure FormCreate(Sender: TObject);procedure TreeView1Change(Sender: TObject; Node: TTreeNode);end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
vari: Integer;node: TTreeNode;List: TStringList;s: string;
begin{country.xml 是 Delphi 的数据示范文件, 也可以用 country.cds}ClientDataSet1.FileName := 'c:\temp\country.xml';ClientDataSet1.Active := True;DataSource1.DataSet := ClientDataSet1;DBGrid1.DataSource := DataSource1;{上面四行是让数据构件互相挂接, 也可以在设计时设定}{建立 List}List := TStringList.Create;List.Sorted := True;           {指定排序}List.Duplicates := dupIgnore;  {避免重复}{把数据加入到 TreeView}for i := 0 to ClientDataSet1.FieldDefs.Count - 1 dobeginnode := TreeView1.Items.Add(nil, ClientDataSet1.FieldDefs[i].Name); {字段名}{为避免数据重复, 先把数据给 List}List.Clear;ClientDataSet1.First;while not ClientDataSet1.Eof dobeginList.Add(ClientDataSet1.Fields[i].value);ClientDataSet1.Next;end;{把 List 中的数据加入到 TreeView}for s in List do TreeView1.Items.AddChild(node, s);end;List.Free;
end;procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
beginif Node.Parent <> nil thenbegin{下面的 Filter 其实就是 SQL 查询语句, 如果用其他数据库替换就是}ClientDataSet1.Filter := Node.Parent.Text + '=''' + Node.Text + '''';ClientDataSet1.Filtered := True;end else ClientDataSet1.Filtered := False; {选字段名时取消过虑}
end;end.

附数据库样本: <?xml version="1.0" standalone="yes"?>


转载于:https://www.cnblogs.com/del/archive/2008/03/20/1114450.html

学习 TTreeView [15] - 连接数据库 (作为给 丁永其 和 DELPHI万岁 两位朋友的回复)...相关推荐

  1. 深度学习(15)TensorFlow高阶操作四: 填充与复制

    深度学习(15)TensorFlow高阶操作四: 填充与复制 1. Pad 2. 常用于Image Padding 3. tile 4. tile VS broadcast_to Outline pa ...

  2. Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    Hadoop学习笔记-15.HBase框架学习(基础知识篇) HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase ...

  3. 【PHP学习】—PHP连接数据库实现表单页面的验证功能(七)

    [PHP学习]-PHP连接数据库实现表单页面的验证功能(七)

  4. 【PHP学习】—PHP连接数据库(六)

    [PHP学习]-PHP连接数据库(六) 一.PHP 创建数据库连接 语法:Object mysqli_connect ('域名','DB账号','DB密码','DB库名'); 注意:如果连接成功:返回 ...

  5. C++语言学习笔记15:Clean 垃圾清理插件

    C++语言学习笔记15:Clean 垃圾清理插件 对话框 STET1 图片切换功能 导入位图资源 插入图片控件并修改属性 添加消息处理函数 step2 开发思路及类关系图 step3 添加控件及MFC ...

  6. 区块链学习笔记15——ETH状态树

    区块链学习笔记15--ETH状态树 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 引入 要实现的功 ...

  7. 深度学习 Day 15——利用卷神经网络实现好莱坞明星识别

    深度学习 Day 15--利用卷神经网络实现好莱坞明星识别 文章目录 深度学习 Day 15--利用卷神经网络实现好莱坞明星识别 一.前言 二.我的环境 三.前期工作 1.导入依赖项并设置GPU 2. ...

  8. 编程英语:常见代码错误 error 语句学习(15)

    编程英语:常见代码错误 error 语句学习(15) error 1:Target address not found 找不到目标地址 error 2:Include files are not al ...

  9. 数据结构与算法学习笔记15:最大流问题 / 二分图 / 有权无权二分图的匹配 / 匈牙利算法 / 银行家算法 / 稳定婚配

    数据结构与算法学习笔记15:最大流问题 / 二分图 / 有权无权二分图的匹配 / 匈牙利算法 / 银行家算法 / 稳定婚配 引入小题:最短路径 最大流问题(maximum flow problem) ...

最新文章

  1. 【深度学习】深入浅出CRF as RNN(以RNN形式做CRF后处理)
  2. 想学python从哪里入手-零基础学习python?要从哪里开始入手呢?
  3. 用openoffice+jodconverter+webuploader+pdf.js实现文件上传、在线预览功能
  4. objdump and readelf
  5. 普通类可以抛出异常吗
  6. P3804 【模板】后缀自动机 (SAM)
  7. 腾讯云安全组规则导出
  8. sql同时操作两列_怎么在两列同时筛选数据库
  9. 信创产业已成现象级新风口 代码“源头”安全该如何守护?
  10. 在训练期间保存检查点
  11. NCS8801S:RGB/LVDS转EDP芯片功能汇总及设计注意事项
  12. jpg灰度化 python_python开发之HighGUI上位机开发(一)
  13. VB添加TTS语音合成
  14. C语言编程轰炸,C语言实现数字炸弹小游戏
  15. 《node2vec Scalable Feature Learning for Networks》阅读笔记
  16. SpreadJS v14.1.5 Crack
  17. SPSS学习 日记
  18. 数据分析 --- 如何收集数据
  19. 基于java汽车4S服务管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  20. Python之人民币与美元的换算

热门文章

  1. 【Latex】一些使用
  2. macOS10.12部署sonarqube5.6.3
  3. [Android]使用RecyclerView替代ListView(四:SeizeRecyclerView)
  4. Web纯前端“旭日图”实现元素周期表
  5. ORACLE 创建作业JOB例子
  6. Tomcat 的 catalina.out 日志分割
  7. Android之app混淆深入分析-层层解析解决开发中痛点
  8. Linux内核设计与实现读书笔记
  9. 【剑指offer-Java版】25二叉树中和为某一值的路径
  10. 第四周项目二-太乐了