问题标签 [virtualtreeview]

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 回答
2991 浏览

delphi - 如何获取 TVirtualStringTree 的热节点坐标?

当鼠标悬停在VirtualStringTree的单元格上时,我正在尝试以不同的方式绘制它。如何检测热节点的坐标?我知道有一个 HotNode 属性,但它只返回鼠标光标下的节点。我需要获取该节点的单元坐标(X,Y)。

0 投票
1 回答
903 浏览

delphi - Virtual StringTree:OnGetHint 事件处理程序返回的文本未显示在提示窗口中

我为 Virtual StringTree 控件的 OnGetHint 事件写了一个处理程序,我确定返回了提示文本,但是提示窗口是空白的,看下面的截图,可能是什么导致了这个问题?先感谢您。

截屏

控件的设置:

0 投票
2 回答
3079 浏览

delphi - 虚拟树视图中的多个扩展节点可能吗?

我在我的Delphi 项目中使用 TVirtualStringTree( Virtual TreeView 组件的一部分),我想创建一个视图,其中 2 列可以具有可扩展/可折叠的子级,并带有 [+] 符号。在下面作为示例的图片中,我希望在服务器列和图像列中都有一个 [+] 符号。这个想法是树有几个服务器节点,每个节点都有许多子进程(主列是图像),一些进程有子进程,它们是进程节点的子进程。

替代文字
(来源:remkoweijnen.nl

这样的布局可能吗?如果不使用默认组件,我将不胜感激有关如何在后代中实现此功能的建议。

/Edit:以下屏幕截图是使用 TOndrej 建议的方法时: alt text http://www.remkoweijnen.nl/temp/TreeView2.png alt text http://www.remkoweijnen.nl/temp/TreeView3.png alt text http://www.remkoweijnen.nl/temp/TreeView4.png

好的,我决定按照 TOndrej 的想法来实现: alt text http://www.remkoweijnen.nl/temp/TreeView5.png

0 投票
2 回答
1805 浏览

delphi - Virtual StringTree:如何判断节点文本是否完整显示?

当 TVirtualStreeTree.HintMode = hmTooltip 时,当鼠标悬停在节点文本未完全显示的节点和列上时,节点文本将成为提示文本。但是我必须设置 HintMode = hmHint,以便我可以在 even 处理程序中根据当前鼠标光标的位置提供各种提示文本,并且在该 HintMode 中不会自动生成提示文本。

我的问题是如何知道节点文本是否完全显示,以便我知道我应该提供节点文本还是空字符串作为提示文本?
谢谢。

0 投票
3 回答
3007 浏览

delphi - 将 VirtualStringTree 导出为 excel、csv?

是否可以将VirtualStringTree导出到 Excel 或 CSV?

我正在使用 Delphi 2007 并尝试将 VirtualStringTree 数据记录保存为 Excel 或 CSV 格式。

0 投票
2 回答
511 浏览

delphi - 虚拟字符串树的提示窗口在屏幕上被遗漏了

看这个截图,中间是由 TVirtualStringTree 控件生成的小提示窗口,它们被遗漏在屏幕上,这些提示窗口将一直存在,直到应用程序退出。当显示树视图的提示并且鼠标快速离开它旁边的窗口时,就会出现问题。

如果很难避免这种情况,或者如何清除那些未擦除的提示窗口,有什么想法吗?

替代文字

几天前我问了一个类似的问题,虽然截图中的提示窗口看起来一样,但不是同一个问题。那个问题,提示文本从不显示,只显示那种未完成的提示窗口;这个问题,提示文本显示,但提示窗口在一个案例中没有完全擦除(如上所述)。希望很清楚。

0 投票
3 回答
4605 浏览

delphi - 在 Delphi 的 Virtual Treeview 中快速滚动

[这是之前发布的问题的更新版本,之前的标题是Selecting node by index in Delphi's Virtual Treeview。]

在一天的大部分时间之后,我相信我已经让 Virtual Treeview 组件(功能强大但复杂)以简单的两表数据感知方式工作。

现在,我试图简单地选择顶级节点的第 1,512 个(例如)。除了获取第一个顶级节点然后在循环中调用 GetNextSibling 1,511 之外,我看不到任何其他方法。

这似乎是不必要的。有没有更简单的方法?

更新

因为初始化我的树中的节点需要访问数据库,所以在启动时初始化所有节点是不可行的。当用户从没有选择记录的表单开始时,这很好。当用户在树中滚动时,会填充足够的节点以将当前窗口显示到树中,并且性能很好。

当用户以对话模式启动表单并选择了数据库记录时,我必须在用户看到表单之前将树推进到该节点。这是一个问题,因为如果记录在树的末尾,我从第一个节点遍历树可能需要十秒钟。每次我可以 GetNextSibling() 时,都会初始化一个节点,即使这些节点中的绝大多数都没有显示给用户。我更愿意将这些节点的初始化推迟到它们对用户可见的点。

我知道必须有更好的方法,因为如果我在没有选择记录的情况下打开树并使用垂直滚动条在一次操作中移动到树的中间,则无需初始化即可显示正确的节点我跳过的节点

这是我在打开选择了记录的树时想要达到的效果。我知道我想去的节点的索引,但是如果我不能通过索引到达那里,我可以在树上进行二进制搜索,假设我可以前后跳转一些节点(类似于直接滚动到树的中间)。

或者,也许我可以对树视图进行一些状态设置,这将使我在遍历网格时未初始化中间节点。我已经尝试过开始/结束更新,但这似乎没有奏效。

0 投票
2 回答
349 浏览

c++ - IID_IDropTarget 和 Virtualtrees::IID_IDropTarget 之间的歧义

我目前正在经历一个重构过程,包括以减少编译时间,我遇到了以下编译错误:

[C++ Error] some_class.cpp(53): E2015 Ambiguity between 'IID_IDropTarget' and 'Virtualtrees::IID_IDropTarget'

它指向的代码行是:

如果我使用Virtualtrees::IID_IDropTarget它编译得很好,但是我需要使用我已经实现的 COMs IDropTarget 接口。我相信问题可能是 Virtualtrees 组件具有 IDropTarget 接口的另一个实现并且它们是冲突的。

有什么想法可以指定我想要Virtualtrees::IID_IDropTarget吗?还是我用于 COM 的 IID_IDropTarget 的命名空间?

0 投票
1 回答
1369 浏览

delphi - 如何将文件从 Virtual TreeView 拖到 Windows Explorer

我有一个 TVirtualStringTree,每个节点代表一个文件,我想要做的是允许用户将一个节点拖到 Windows 资源管理器或 Outlook 中,并且目标获得一个真实文件。看来我需要实现OnGetUserClipboardFormatsRenderOLEData事件处理程序?但我不知道从哪里开始......你能帮帮我吗?

0 投票
4 回答
2370 浏览

delphi - Delphi,VirtualStringTree - 类(对象)而不是记录

我需要为 VirtualStringTree 节点使用一个类而不是记录。

我是否应该像这样声明它是标准的(但在这种情况下 - 棘手):

还是我应该直接使用TMyObject?如果是这样 - 怎么样?!如何分配(构造)对象并释放它?

提前谢谢米。