高端仿真假山/仿真树
北京圣园工程有限公司

18518686331

Tchnology北京圣园仿真假山与仿真树作用

您当前的位置:首页 > 仿真假山与仿真树 > 仿真假山与仿真树作用

来源:网络 时间:2020-07-03 15:21:00 浏览次数:

将更多的自定义数据存储到树视图的树节点中

        TTreeView Delphi组件显示项目的分层列表- 树节点。节点由节点文本和可选图像表示。树视图中的每个节点都是TTreeNode类的实例。


        虽然您可以在设计时使用TreeView Items Editor在树形视图中填充项目,但在大多数情况下,您将在运行时填充树形视图-取决于应用程序的用途。


        TreeView Items Editor显示只有少量信息可以“附加”到节点:文本和一些图像索引(对于正常状态,展开,选定等)。


        本质上,树视图组件易于编程。有两种方法可以将新节点添加到树中并设置其层次结构。


        这是将10个节点添加到树视图(名为“ TreeView1”)的方法。请注意,Items属性提供对树中所有节点的访问。AddChild将新节点添加到树视图。第一个参数是父节点(用于构建层次结构),第二个参数是节点文本。


TTreeView Delphi

古朴大气仿真古树北京淡水河谷于网络摘录此图,若有不妥请通知我们


        AddChild返回新添加的TTreeNode。在以上代码示例中,所有10个节点都被添加为根节点(没有父节点)。


        在任何更复杂的情况下,您都希望节点携带更多信息-最好具有一些特定于您正在开发的项目的特殊值(属性)。


        假设您要显示数据库中的客户订单项目数据。每个客户可以拥有更多订单,每个订单由更多项目组成。这是一个可以在树视图中显示的层次关系:


        在您的数据库中,每个订单和每个项目都会有更多信息。树状视图显示(只读)当前状态-您想查看所选订单的每个订单(甚至每个项目)详细信息。


        当用户选择节点“ Order_1_1”时,您希望向用户显示订单详细信息(总计,日期等)。

        那时,您可以从数据库中获取所需的数据,但是您需要知道所选顺序的唯一标识符(比如说整数值)才能获取正确的数据。


TTreeView Delphi

古朴大气仿真古树北京淡水河谷于网络摘录此图,若有不妥请通知我们


        我们需要一种方法来将该订单标识符与节点一起存储,但是我们不能使用Text属性。我们需要存储在每个节点中的自定义值是一个整数(仅作为示例)。


        当发生这种情况时,您可能会倾向于寻找Tag属性(许多Delphi组件都具有),但是TTreeNode类未公开Tag属性。


        将自定义数据添加到树节点:TreeNode.Data属性


        树节点的Data属性允许您将自定义数据与树节点相关联。数据是一个指针,可以指向对象和记录。在TreeView中显示XML(RSS提要)数据显示了如何将记录类型变量存储到树节点的Data属性中。


        许多项目类型的类都公开了Data属性-您可以将其与项目一起存储。一个示例是TListView组件的TListItem。这是将对象添加到Data属性的方法。


        将自定义数据添加到树节点:TreeView.CreateNodeClass


        如果您不想使用TTreeNode的Data属性,而是想用几个属性扩展自己的TreeNode,Delphi也提供了一个解决方案。


TTreeView Delphi

古朴大气仿真古树北京淡水河谷于网络摘录此图,若有不妥请通知我们


        说你想做


        以下是使用您自己的一些属性扩展标准TTreeNode的方法:


        1、通过扩展TTreeNode创建TMyTreeNode。


        2、添加一个字符串属性MyProperty。


        3、处理树视图的OnCreateNodeClass以指定应创建的节点类。


        4、在窗体级别上公开类似TreeView1_SelectedNode属性的内容。这将是TMyTreeNode类型。


        5、处理树视图的OnChange,将所选节点的值写入到SelectedNode中。


        6、使用TreeView1_Selected.myProperty读取或写入新的自定义值。


        这是完整的源代码(窗体上的TButton:“ Button1”和TTreeView:“ TreeView1”):


        这次不使用TTreeNode类的Data属性。而是,将TTreeNode类扩展为具有自己的树节点版本:TMyTreeNode。


        使用树视图的OnCreateNodeClass事件,您可以创建自定义类的节点,而不是标准TTreenode类。


上一篇:圣诞树如何成为流行的传统

下一篇:C3,C4和CAM植物对气候变化的适应(二)

18518686331