5.PaintText事件 自定义TargetCanvas

6.GetPopupMenu事件 设定PopupMenu

7.OnSaveNode和Onloadnode 保存为文件,需要自己实现这二个事件

显示Header

1.双击VST

2.添加Column -> Text属性

3.Include( VST.Header.Option, hoVisible);

显示单选、复选框

Include(VST.TreeOptions.MiscOptions,toCheckSupport);

VST.CheckImageKind :=ckXP;

Node.CheckType :=ctCheckBox;//新加节点如果要显示复选框,一定要指定,默认值ctNone

Node.CheckState=csCheckedNormal;//是否选中状态

不显示TreeLine

TreeOption->PaintOptions->toShowTreeLines

Node: PVirtualNode;

Data: PVSTNode;

Node := VST.AddChild(nil);

Data := VST.GetNodeData(Node);

VST.InvalidateNode(Node);

当前选中的节点

VST.FocusedNode

Node:PVirtualNode;

Data:PNodeData;

begin

Node:= VST.GetFirst;

while Assigned(Node) do

begin

Data := VST.GetNodeData(Node);

Node := VST.GetNext(Node);

节点没有子节点,但想显示节点前的展开+符号

Include(Node.States,vsHasChildren);

三态复选框选中级连选择, Node.CheckType := ctTriStateCheckBox;

选中的三态:未选中csUncheckedNormal,选中csCheckedNormal,子节点选中父节点状态csMixedNormal

假如以对象而不是记录的方式来存放数据结构

1.初使化时 VST.NodeDataSize:=4;

2.添加节点 NewNode:= VST.AddChild(ParentNode,Data);

3.获取节点数据vst.GetNodeData(Node)^ //注意GetNodeData函数获取的其实是一个指针

4.释放数据 在OnFreeNode事件中把对象Free掉

转载于:https://www.cnblogs.com/fishseewater/archive/2012/01/17/2324802.html

原文链接: http://www.cnblogs.com/fishseewater/archive/2012/01/17/2324802.html 以下代码实现在 Virtual Treeview 中当鼠标在节点上移动时,节点背景颜色发生变化 CodeprocedureTForm1. Virtual StringTree1BeforeItemErase(Sender:TBase Virtual Tree;TargetCanvas:TCanvas;Node:P Virtual Node;ItemRect:TRect;varIte... Virtual TreeView 是一个功能强大的 delphi 树型组件,从它带的例子就能看出来。下面我把我做的如下图所示的树型的代码贴出来,供大家参考:     源码:{*------------------------------------------------------------------------------ Virtual TreeView 使用 示例 Virtual Treeview 是一套 Delphi 下优秀的VCL控件,代码质量高, 使用 灵活、功能强大、性能非常好,可以用于表达 Treeview 和表格类数据。它的代码现在托管在google code上。 Virtual Treeview 是一个“纯VCL”控件,这意味着它不是基于任何系统控件,而是重新编写的。正如它的名字已经表明,这个控件与其他这类控件相比, 使用 了一个不同的树管理模式。它不知道它所管... Virtual Treeview 是一套 Delphi 下优秀的VCL控件,代码质量高, 使用 灵活、功能强大、性能非常好,可以用于表达 Treeview 和表格类数据。它的代码现在托管在google code上。 这套控件 使用 了很久了,非常满意其表现,之前一直 使用 V4版,现在V5正式发布了,新版花了几年时间进行重构, 代码结构更加合理,去除了老版大量的小缺陷,很多功能进行了重新设计,参与维护的人也更多了...  //这里是创建一个一个类   type TCheckBox TreeView =Class(T TreeView )      protected    procedure CreateParams(var Params: TCreateParams); override;   end; //具体只要加一句话 procedure TCheckBox TreeView .CreateParams(var Pa 打开电脑,进入Windows操作系统,在资源管理器的左边栏中清楚地显示了系统管理的所有磁盘的信息以及各个磁盘所容纳的文件与文件夹(如图一)。这种常见的显示方式是由一个根节点和若干个子节点构成的,这被称为“树形结构”。这种树形结构的用途非常广泛,在很多常用软件中都出现过它的身影。Windows中将这种结构封装为“树形控件”,即 TreeView 控件,它与ListView、Button等一样都属于系统自 Virtual Treeview 是一个“纯VCL”控件,这意味着它不是基于任何系统控件,而是重新编写的。正如它的名字已经表明,这个控件与其他这类控件相比, 使用 了一个不同的树管理模式。它不知道它所管理的数据是什么东西(除了它的大小),甚至没有一个节点的标题。一切都获取于通过应用程序的事件(或通过派生覆盖方法)。 Virtual Treeview 是经过精心设计和彻底的测试。这个控件证明了它的概念以及在许多商业产品和免费软件的项目中都很健康的运行。 {*------------------------------------------------------------------------------ Virtual TreeView 使用 示例  @author  屈剑峰  email: qujianfeng@gmail.com  @version 2008/10/16 1.0 Initial revision.  @todo  @co 很好用的一个列表控件,可以用来代替 Delphi 自带的ListView和 TreeView ,而且也一直在更新,目前已经支持最新的XE2官方网站:http://www.soft-gems.netSVN地址:http:// virtual - treeview .googlecode.com/svn/trunk基本的 使用 方法就不多说了,可以看看Demo,或者百度一下还是有些教程的。我这里只记录一些属性方法等,方便... 安装方法: 1、打开 Packages 中的 Virtual TreesR.dproj ,选择 Build 2、打开 Packages 中的 Virtual TreesD.dproj ,选 Install source