Virtual stringtree(以后简称VST)是一个提供源码的免费的第三方插件,支持DELPHI和C++builder,可在http://www.soft-gems.net/下载到最新的版本。

我们先来看看VST对自己的介绍吧:

  • 虚拟Treeview非常快。添加一百万个节点只需要700毫秒!这使它成为目前Delphi / BCB市场上最快的树视图。
  • Virtual Treeview具有非常小的内存占用量。通过仅为每个节点分配大约60个字节(在字符串树中,基本树仅使用56个字节),它准备好容纳一百万个字节。
  • Virtual Treeview针对高速访问进行了优化。根据所需的验证和节点验证状态,遍历一百万个节点仅需要0.5秒。
  • 支持多选,包括约束选择,以便只能选择某个初始级别的节点。已经在开发有效算法方面付出了很多努力,例如允许仍然以交互方式修改已经很大的选择集。
  • 将整个树绘制到位图或中央PaintTree方法支持打印机。消息WM_PRINT和WM_PRINTCLIENT被正确处理,允许将树绘制成位图(例如,用于分层窗口或实现使用VT作为下拉控件的控件的动画下拉)。
  • 有一个OnHint事件可显示节点特定的提示。
  • 有一个OnGetHelpContext事件可以检索特定于节点的帮助上下文ID。这包括在用户按下F1时调用的自动树和窗口父控件遍历
  • 有一个OnGetPopupMenu事件来检索节点特定的弹出菜单,包括自动树遍历。•除了左按钮之外,还可以使用鼠标右键和右键,并支持使用左键输入的所有内容(拖动,选择等)。当然,可以切换这些替代按钮。
  • 可以在树中使用固定的背景图像,并且可以给出一定的偏移量,例如模拟共享背景。
  • 支持节点的热门样式(就像浏览器窗口中的链接一样)。可以为此任务分配特殊光标。
  • 字符串树支持所谓的静态文本,该静态文本出现在节点的标题之后(在每一列中),并且可以与标题不同地格式化,但不能编辑,选择等。
  • 支持自动跨度列模式,如果列的右侧有空列,则该列可以为其标题占用更多空间。这样可以避免剪切长字幕,但仍允许使用多列。
  • 可以在每个列中选择一个节点(这是可切换的)以及编辑的节点,使Virtual Treeview也成为某种网格。制表键可用于在单元格之间切换焦点。存在一个特殊选项(toGridExtensions)以支持特定于网格的任务。
  • 节点可以具有单独的高度,节点的图像和线条的垂直对齐可以单独调整。
  • Virtual Treeview公开其内部状态,如挂起拖动或编辑事件,多选或正在进行扩展。使用此信息,应用程序可以优化其代码执行(状态更新等)。
  • 通过应用程序定义的比较回调支持对节点进行排序。此外,可以将树设置为自动排序。
  • 提示可以包含多行文本,并镜像显示的节点或列的对齐方式和方向性。对于他们的动画滑动和alpha混合是可用的。
  • 也可以使用各种选项和方向进行增量搜索。
  • 当拖动和绘制选择(多选)时鼠标靠近边框时,会发生客户区域的自动滚动。
  • 字符串树的默认节点高度和默认节点文本可用于避免将许多节点显式设置为相同的起始值。

基本上这些介绍都是真实的,有兴趣的朋友可以根据介绍决定是否采用VST。

什么是virtual string tree?的更多相关文章

  1. Delphi Virtual String Tree 基本用法

    首先建立树节点所用的记录类型 type HXL_TNode = record name:string; desc:string; BRoot:Boolean; 定义该类型指针 pHXL_TNode = ...

  2. How to let TVirtualStringTree to display an icon in disabled state?

    How to let TVirtualStringTree to display an icon in disabled state? I need to display files in a dir ...

  3. Virtual Treeview - Paint cycles and stages

    The most complex process in Virtual Treeview is without doubts its painting. Read here what stages V ...

  4. ext js layout and tree

    数据     <configuration> <configSections> <section name="hibernate-configuration&q ...

  5. [leetcode] 根据String数组构造TreeNode,用于LeetCode树结构相关的测试用例

    LeetCode 跟树结构相关的题目的测试用例中大多是通过String数组来构造树.例如{2,#,3,#,4,#,5,#,6},可以构造出如下的树(将树结构逆时针选择90度显示): 6         ...

  6. 3、C#面向对象:封装、继承、多态、String、集合、文件(下)

    面向对象多态 一.装箱和拆箱 装箱:将值类型转换为引用类型.object o = 1:值类型给引用类型赋值 拆箱:将引用类型转换为值类型.int n = (int)o; 强制转换为值类型 满足条件:两 ...

  7. 抛开react,如何理解virtual dom和immutability

    去年以来,React的出现为前端框架设计和编程模式吹来了一阵春风.很多概念,无论是原本已有的.还是由React首先提出的,都因为React的流行而倍受关注,成为大家研究和学习的热点.本篇分享主要就聚焦 ...

  8. 基础知识系列☞Abstract和Virtual→及相关知识

    转载地址→http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的 ...

  9. virtual修饰符

    virtual(C# 参考) virtual 关键字用于修饰方法.属性.索引器或事件声明,并使它们可以在派生类中被重写. 例如,此方法可被任何继承它的类重写. public virtual doubl ...

随机推荐

  1. Web中间件常见漏洞

    IIS Internet Information Services--windows 解析漏洞 IIS 6.x 基于文件名:该版本默认会将 *.asp;.jpg 此种格式的文件名,当成 Asp 解析, ...

  2. php-fpm运行原理

    来源:https://blog.csdn.net/sinat_38804294/article/details/94393621 一.php-fpm由来1.cgi (common gateway in ...

  3. php 常量的使用

    我们来看下直接的例子 <?php //定义常量 //常量不可被删除 //常量一旦被定义,就无法重新置换 //常量一旦定义,就不能对他第二次定义,否则会报错! define('MYCONSTANT ...

  4. SQLI-LABS学习笔记(一)

    逼话少说,如有错误,烦请指出,谢谢. 第一关 提示传个id的参数 后面跟个单引号 http://10.2.10.31/sqli/Less-1/?id=1’ 发现报错,这里看到是已经闭合了 You ha ...

  5. Android程序中Acticity间传递数据

    在Android开发过程中,在不同的Acitivity之间传递数据的情况是非常常见的.我花费了一点时间来总结Acitivity之间的数据传递,记录下来. 1.简单传递键值对 这种传递方式非常简单,只需 ...

  6. PIL库的学习总结及生成GIF

    一.PIL库的概述 PIL(Python Image Library)库是Python语言的第三方库,需要通过pip工具安装. 打开cmd,输入 pip install pillow PIL库支持图像 ...

  7. c/c++头文件的摘抄

    C/C++常用头文件 以及简单应用介绍 C/C++头文件一览 C #include <assert.h> //设定插入点 #include <ctype.h> //字符处理 # ...

  8. 疯子的算法总结10--最小生成树Kruscal

    按照权值排序可得,就有如下顺序: 1. 1-2 1 2. 1-4 2 3. 1-5 2 4. 2-5 3 5. 2-3 4 6. 4-5 4 每次选取最小边泉,判断是否同属一个集合,如果不属于同一集合 ...

  9. nnIPXougCC

    13:58:31           2020-03-14 发现一本书叫做<活法> 学习ing 2020-03-14 15:22:36 太快 ,练习了一会sql语句和打字 想看一会 憨豆特 ...

  10. 题目分享k

    题意:开关问题,有n只奶牛朝前或朝后,要使这n只奶牛全部朝前,每次能且必须翻转k只奶牛,求在最少翻转次数下的最小的k值,n≤5000 分析:n²暴力直接水过......枚举k值,对于每个k值因为最左边 ...