问题标签 [tvirtualstringtree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
414 浏览

delphi - 放大电视虚拟字符串树

我想找到放大/缩小 TVirtualStringTree 的“最佳方式”。
“放大”意味着模仿放大镜。
必须通过优先使用 TVirtualStringTree 控件中专用于此的属性/方法来理解“最佳方式”。如果不存在方法,则提出最简单的方法,避免使用低级 API。

为了更好地解释这个问题,
这里是初始状态的 TVirtualStringTree 的屏幕截图: 初始状态 http://didier.cabale.free.fr/temp/VST1.jpg
.. 这是 TVirtualStringTree 处于通缉状态的屏幕截图: 通缉状态 http://didier.cabale.free.fr/temp/VST2.jpg

0 投票
1 回答
348 浏览

delphi - 如何将特定节点移动到第一个索引?

当我按下按钮时,我试图将节点移动到顶部,TVirtualStringTree所以我要做的第一件事是通过以下代码搜索节点

然后我将程序设置为能够检查节点是否等于例如“Martin”

0 投票
1 回答
75 浏览

locking - 如何锁定 TVirtualStringTree 中的选定节点?

我有一个带有一些已检查节点的 TVirtualStringTree。处理后,应用程序会选择其中一些节点以供将来通过双击使用。

我的问题是,在应用程序选择其中一些节点后,如果单击或双击任何节点,则选择丢失。我需要只有应用程序才能进行选择更改;并且这些选择必须在仍然需要时保持选中状态。

有没有办法将选择锁定给用户?我尝试设置属性

TreeOptions. MiscOptions. ReadOnly← 真

但它会导致组件出错。

我查看了SelectionOptions属性,但找不到解决我的问题的子属性。

0 投票
1 回答
435 浏览

delphi - 如何定义具有动态数据结构的 TVirtualStringTree

我想动态加载并显示TVirtualStringTree来自一些不同 SQL 表的数据。这意味着每列的标题和内容每次都会包含不同类型的数据。

我的问题是如何优化内存使用、记录的定义和这种情况下的指针。

我的想法是这样做:

实际上,记录中只有两个字段将包含数据:(DataType一直)和第二个字段,取决于DataType定义的(例如AsStringAsInteger)。初始化 Node 时,其他字段也会分配为内存吗?我也不喜欢DataType分配给每个节点的事实。必须有一种简单的方法来优化此记录。

请提出一些建议。

0 投票
2 回答
1090 浏览

delphi - 使用 TVirtualStringTree.OnGetImageIndex 覆盖图像

我想将组件中的图像显示ImageList1vtTest叠加层。

我在 Internet 上和 SO 中找到了许多资源 - 就像这样- 但我无法让它们都正常工作。

我确定我错过了一些非常微不足道的东西,但我无法弄清楚它可能是什么。


我得到  在此处输入图像描述       什么: 我想要什么:  在此处输入图像描述


这是包含显示我的问题的基本示例的表单。

Unit1.pas

Unit1.dfm


提示

  • Delphi XE4 上的 VirtualTrees 版本为 5.2.1
  • 该行在函数ImageIndex := 1;中执行vtTestGetImageIndex- 设置断点时调试器停在那里
  • 索引处的图像0确实1存在于TImageList
  • 我已经能够为不同类型的节点使用不同的图像而无需覆盖
0 投票
0 回答
272 浏览

delphi - 使用 delphi XE8 和 VirtualStringTree 正确添加、加载和保存节点

我正在使用带有复选框等的基本树视图功能的虚拟字符串树。
我使用了原始文档(从 2006 年开始),但在加载我保存的数据时遇到错误,即使虚拟字符串树看起来不错。

我相信我应该使用InitNode而不是MAddVSTStructure.

谁能建议在这种情况下添加节点的正确方法?
这可能是加载过程加载信息但单击加载的节点时出现访问冲突的原因。

0 投票
0 回答
138 浏览

delphi - TVirtualStringGrid - 正确复制和粘贴节点

有人可以给我看一个 VirtualStringTree.CopyTo 的好例子吗?我制作了一个添加、删除节点的应用程序,但无法使 CopyTo 正常工作。我的目标是使用 CopyTo 函数将节点及其子节点复制到另一个位置。CopyTo 函数似乎使用了 savenode 和 loadnode 函数......

澄清:我查看了我的 LoadNode 和 SaveNode 方法;

对于以下类型的 TTreedata,我做了以下加载和保存方法:

当我在选定节点上使用复制功能时,当我在调试模式下进入功能 LoadNode 时,它​​给我一个访问冲突(Delphi XE8)在该行写入地址 000000000000000

谢谢

0 投票
1 回答
171 浏览

delphi - 将 CollectionItem 的属性添加到后代组件

我想创建一个后代组件TVirtualStringTree并向Columns集合添加更多属性。

的实际结构TVirtualStringTree是:

请有关此主题的一些支持。谢谢!

0 投票
2 回答
914 浏览

delphi - TVirtualStringTree - 添加对象而不是记录

我有一个 TVirtualStringTree(版本 5.2.2),我需要添加到它的节点对象而不是记录。

我已经查看了针对该问题提供的答案: Delphi, VirtualStringTree - classes (objects) instead of records但它们不起作用。

我想添加到树节点的对象就像

这些节点被添加到 TObjectList:

并添加到树中:

我得到一个E2015 运算符不适用于此操作数类型错误。这可能是我在这里缺少的非常简单的东西......

我知道我可以将它添加为带有对象成员的记录,例如:

但我想了解我做错了什么。

0 投票
1 回答
194 浏览

delphi - 如何在 VirtualStringTree 中添加不可见节点?

目前我有这段代码可以将一些节点添加到VST

我想在不可见状态下添加节点,我的意思是完全不可见。

我知道我可以在添加节点后设置节点的可见性,VDT1.IsVisible[Node] := boolean;但考虑到我添加的记录设置为,我想在显示在树中之前将其设置为不可见DATArecord.Visible:= False;

因此,如果Datarecord.visible等于 true,则添加具有可见状态的节点。如果它是假的,添加不可见状态的节点我该怎么做?