- 浏览: 59934 次
- 性别:
- 来自: 杭州
最新评论
把数据库中的数据在树型控件(TreeView)中正确显示是较为不易,我在实际编程中经常为之头痛,也使用了不少方法,后来仔细研究了cxDBTreeList控件,受到启发解决了问题:
1、 创建一个表,为简化程序,只创建三个数据字段,定义如下:
字段名 类型 长度 说明
Mytext nvarchar 50 要显示的文字
MyID int 4 主关键ID,(可使用自动编号)
MYParentID int 4 记录父主关键ID,无父节点是时为0
2、窗体中放置一个TreeView控件;
2、使用数据控件连接该数据表(本例中使用ADOTable);
3、声明一个过程:
procedure MyNode(MyParentID:string;MyNodeT:TTreeNode);
4、过程代码:
procedure TA_FinanceSubjec.MyNode(MyParentID: string;MyNodeT:TTreeNode); type PMyList = ^AList; AList = record MyParendID: string; MyNodeP: TTreeNode ; end; var ATempList: TList; I: Integer; ARecord:PMyList; s:string; node:TTreeNode; begin ADOTable1.Filtered:=true; ADOTable1.Filter:=' MYParentID ='+MyParentID; if ADOTable1.RecordCount<1 then exit; ATempList := TList.Create; try ADOTable1.First; while not ADOTable1.Eof do begin New(ARecord); s:='('+ADOTable1MyID.AsString +')'+ ADOTable1Mytext.AsString ; node:= TreeView1.Items.AddChild(MyNodeT ,s) ; ARecord^.MyParendID:= ADOTable1Mytext.AsString ; Arecord^.MyNodeP :=node; ATempList.Add(Arecord); ADOTable1.Next; end; for I :=0 to ATempList.Count - 1 do begin Arecord:=ATempList.Items[i]; MyNode(Arecord^.MyParendID,Arecord^.MyNodeP ); end; finally for I := 0 to ATempList.Count - 1 do Dispose(ATempList[I]); ATempList.Free; ADOTable1.Filtered:=false; end; end; procedure TForm1.FormShow(Sender: TObject); begin ADOTable1.DisableControls; if ADOTable1.Active then ADOTable1.Active:=false; ADOTable1.Active:=true; ADOTable1.First; MyNode('0',nil ); ADOTable1.EnableControls; end;
5、改变节点位置时(在OnDragDrop中实现):
var iPos1:integer;s:string; begin ipos1:= pos(')', TreeView1.Selected.Parent); if ipos1>1 then begin s:=copy(RzTreeView1.Selected.Text,2,iPos-2); ADOTable1.Locate('MyID',s,[loPartialKey]); ADOTable1.edit; ADOTable1MYParentID.asinteger:= StrToInt(copy(TreeView1.Selected.Parent,2, ipos1-2)) ; ADOTable1.post; End;
(出处:DelphiFans.com)
发表评论
-
脚本是在
2009-03-11 19:00 1092大家交 ... -
DELPHI常见事件、常用方法、属性使用范围说明
2008-06-19 22:24 2848属性使用范围说明 Action 一些组件标识与组件相连接的 ... -
DELPHI常见属性说明
2008-06-19 21:37 1560DELPHI常见属性说明: ALI ... -
Delphi中的时间操作技术
2008-06-19 13:45 2712在编写应用程序时,我 ... -
delphi用于时间操作的函数 (2)
2008-06-19 13:44 1730TDateTime类型与字符串型转换函数: DateTime ... -
delphi用于时间操作的函数(1)
2008-06-19 13:43 1368用于时间操作的函数 Date函数: 定义:Date: TDa ... -
数据库表TreeView树的快速生成
2008-06-18 21:57 1972根据数据表的内容生成TreeView树状结构,通常的做法就是从 ... -
Delphi中根据分类数据生成树形结构的最优方法
2008-06-18 21:52 3445新一篇: Delphi程序设计之--惯用法 一、 引言: ... -
我的DBTreeView--TreeView直接连接数据表
2008-06-04 17:34 1071unit Unit1; interface uses ... -
Delphi下Treeview控件基于节点编号的访问
2008-06-04 17:31 1502有时我们需要保存和重建treeview控件,本文提供一种方法, ... -
Delphi中根据分类数据生成树形结构的最优方法
2008-06-04 17:27 1324很多系统都有类似于如下的表结构(table1): ID ... -
TreeView添加子节点和动态生成控件
2008-06-04 14:06 3932有这样一个TreeView,动态分有类A,B,C...(不一定 ... -
Delphi中树型控件的使用技巧
2008-06-03 13:40 1416我们都知道,开发者 ... -
TREEVIEW右键菜单示例
2008-06-03 13:31 3622在 Form1 上拖一个 TreeView 控件,然后参考一下 ... -
TreeView的使用
2008-06-03 13:09 1341TreeView 是一个显示树型结构的控件,每一个节点都是一个 ... -
在Dephi中使用TStream读写数据的技巧
2008-06-02 13:29 820在Dephi中提供了一个抽 ... -
Delphi环境下灵活的数据库树表实现
2008-06-02 13:27 12621 数据结构设计 在 ...
相关推荐
在Windows API中,树型控件(HTREEITEM)是一种窗口控件,它可以展示多级数据结构,每一级称为一个节点,节点之间通过父节点与子节点的关系构成树状结构。用户可以通过展开和折叠节点来查看或隐藏子节点,这种控件...
在Java编程领域,树型控件(Tree View)是一种常用的数据可视化组件,它允许用户以层级结构展示数据,常用于文件系统、组织架构或者复杂的分类系统等场景。本压缩包"树型控件 java.rar"包含了一个使用Java实现的树型...
在MFC中,树型控件通常由`CTreeCtrl`类表示,提供了一系列的方法来操作控件,如添加、删除、修改节点等。 描述中的`treepropertysheet`可能是一个自定义的对话框类,它扩展了标准的`CPropertySheet`类,增加了树型...
Flex是一种基于ActionScript和MXML的开源框架,常用于构建富互联网应用程序(RIA)。Tree控件在Flex中扮演着重要角色,它允许用户以图形化的方式浏览和操作层级结构的数据。 首先,我们要理解Flex Tree控件的基础。...
在Windows应用程序开发中,树型控件(Tree Control)是一种常见的用户界面元素,它以层级结构展示数据,适用于目录浏览、文件系统管理等多种场景。在MFC(Microsoft Foundation Classes)框架下,我们通常会使用`...
在VC++编程环境中,树状图控件,也被称为树型视图控件(Tree Control),是一种常用的用户界面元素,用于展示数据的层次结构。它广泛应用于文件浏览器、应用程序设置菜单以及各种配置工具中,因为它能清晰地表示具有...
JavaScript(简称JS)是一种轻量级的脚本语言,常用于网页交互和动态效果的实现。在本案例中,我们讨论的是一个“js简易的日历控件”,它旨在提供类似于QQ邮箱中简洁版日历的功能,适合作为网页左下角或后台管理页面...
JavaScript中的树型结构是一种数据组织方式,它模拟了自然界中的树状结构,具有层次分明、节点间存在父子关系的特点。在编程中,树形结构常用于实现如文件系统、组织结构、网页DOM(文档对象模型)等场景。在这个...
CTreeCtrl是MFC(Microsoft Foundation Classes)库中提供的一种控件,用于在Windows应用程序中创建和管理树形视图。这种控件常用于显示层级结构的数据,如文件系统、组织结构或菜单。本篇文章将深入探讨CTreeCtrl的...
树型框是常见的一种控件,它通常用于显示层次结构的数据,比如文件系统或者组织结构。在树型框中,各个节点之间通过连线表示它们的父子关系。而本主题讨论的是如何改变这些连线的颜色,以达到个性化或高亮显示的目的...
在Android开发中,树形控件(TreeView)是一种常见的用户界面元素,用于展示层次结构的数据。通常,我们可能会使用ListView、RecyclerView等控件来模拟实现树形结构,尤其是在数据层级不固定或者层级较深的情况下。...
树形控件在计算机编程,特别是用户界面设计中,是一种常用的数据展示组件。在MFC(Microsoft Foundation Classes)框架下,树形控件是用于构建Windows应用程序的重要工具,它允许用户以层次结构的方式查看和操作数据...
在Windows编程领域,树形控件(TreeView Control)是一种常用且功能强大的用户界面元素,它允许用户以层次结构的方式查看和操作数据。本资源提供的"vc树形控件源码"是一个面向Visual C++开发者的实践示例,旨在帮助...
总的来说,“C#下拉框中显示树控件”是一种提高用户界面交互性的设计,它结合了下拉框的简洁性和树控件的层次性,是开发中的一种实用技巧。通过理解和掌握以上知识点,开发者可以有效地实现这一功能,并为用户提供更...
本主题涉及的是一个名为“三状态树控件”的自定义控件,该控件扩展了传统的二状态(选中和未选中)树形控件,增加了第三种状态,通常称为“半选中”或“不确定状态”。这个控件可能是用C#编程语言实现的,因为它在...
在IT领域,尤其是在Windows应用程序开发中,经常需要将数据库数据以图形化的方式展现给用户,TreeView控件就是一种常见的选择。本项目似乎涉及到一个使用Delphi编程语言开发的应用,其目标是根据特定的数据库表...
在C#编程中,树型列表(TreeView)是一种常见的用户界面元素,用于展示层次结构的数据。这个"用树型列表动态显示菜单源码"的压缩包包含了一个示例项目,教你如何利用C#来实现这样的功能。下面我们将深入探讨相关的...
在Java编程语言中,构建一个目录树控件是常见的需求,尤其在开发文件管理系统或桌面应用程序时。这个控件能够直观地展示文件系统的层级结构,使用户能够方便地浏览和操作文件和文件夹。以下是对如何实现Java目录树...
本实例主要关注的是MFC中的树形控件(TreeCtrl),它是一种常见的图形用户界面元素,常用于展现层次结构的数据。MFC TreeCtrl为开发者提供了丰富的功能,如添加、删除节点,以及设置节点的图标和状态。 首先,让...