问题标签 [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.
delphi - 如何在 TVirtualStringTree 中绘制动画水平条?
我的目标是在VST
我的目标是绘制与下图类似的结果,我尝试做这样的事情OnBeforeCellPaint
:
但我不能做相同的结果并达到与以下图像相同的方法:
这就是我在编码中得到的结果:
进度条出现在不在它旁边的节点上,它的设计与图像中显示的不同,它来自节点的黄色长背景,我想在节点的左侧制作它,并具有与我在上面发布的动画图像。
delphi - TStringEditLink 被破坏后的访问冲突 (TVirtualStringTree) - Lazarus 示例
我尝试基于Lazarius的示例为 VirtualStringTree 实现一个编辑器
你能告诉我为什么我在TStringEditLink
被销毁后会出现访问冲突吗?
奇怪的是,只有当我按 ESCAPE 或 ENTER 时才会出现错误。如果我从一个单元格单击到另一个单元格,则没有错误。
就像一个观察,我播种,如果我FEdit.Free
从错误中删除代码destructor TStringEditLink.Destroy
消失。
您对此有解决方案吗?
下面是完整代码:
和EditorLink
单位
delphi - TVirtualDrawTree - 如何将节点放置在一行中?
这是对我的另一个问题的跟进。
正如我在评论中被建议提出关于这个主题的新问题
有人建议我在 Row 中绘制不同的图像。我的目标从一开始就并排插入节点我被告知这不能用 VDT 来完成,它不是为此目的而制造的。但是是什么让我确定有办法,因为我看到一个在线项目使用相同的 VDT
这是这个项目的屏幕截图
使用像PE资源管理器这样的资源查看器,我发现了这个表格数据
所以我告诉自己,我必须用它Tviruaildrawtree
来实现相同的目标,然后我开始创建数据
因为我在想我必须为节点创建图像对象,因为我将从 url 下载一些图像列表然后将它们添加到节点,如下所示,所以下面的代码是将图像从字符串列表下载到桌面然后将其加载到节点Tgifimage
以及我如何在 VDT 内绘制节点
但我无法安排与我上面显示的图像相同的节点
它似乎不是可以制造的onbeforecellpanit
。
在我的另一个问题中,Tom Brunberg建议将图像划分为 10 个节点,如果添加的图像是 80 个并且每行需要 8 个,例如,每个有 8 个图像并且每个图像显示在它自己的列中。但我不知道如何在编码中或从哪里开始。
当前代码的问题
我在下面的代码中遇到了一个异常我在字符串列表中添加了 6 个图像路径然后尝试在每列上绘制
delphi - 检测用户是否通过选项卡或单击获得组件的焦点
如何检测用户是通过tab
按键还是鼠标进入组件click
?
更新 1
事实上TVirtualStringTree
,这是关于一个重点关注的方式,它打开一个专注于一个或另一个列的自定义编辑器。
更新 2
查看下面的代码。
我想做的是:
- 如果用户按键输入,则编辑焦点节点的第一列
Tab
或 - 如果通过鼠标输入,则编辑相应的命中列
click
如果我点击组件,OnEnter
首先触发,然后触发OnClick
,所以问题是编辑节点被触发了 2 次。
delphi - 在 Delphi 应用程序中结束或取消拖放操作
我正在从 Outlook 中拖放电子邮件附件。文件被放入虚拟树视图中。
我在拖拽事件结束时的导入功能需要一段时间来处理文件,它会冻结 Outlook 应用程序,直到功能结束。
我希望能够在功能中途结束拖动操作。
delphi - 如何使 TVirtualStringTree 进程具有更高优先级的按键?
我们最近修改了一个特定的搜索表单。它的功能是标准搜索表单的功能:在顶部的某些框中输入一些条件,点击“搜索”按钮,然后在下方的网格中显示结果。但它很丑而且功能非常有限,所以我的一个同事重建了它……就在去换新工作之前。现在我正在尝试完成最后几个细节。
其中一项更改是用TListBox
更强大的TVirtualStringTree
. 但是在这个过程中,它似乎破坏了一些东西:之前,如果您单击网格中的一行(使网格处于放置焦点)并点击Enter,相应的事件处理程序将触发并处理您的输入,打开详细视图对于所选项目。然而,在这个网格中,按下Enter会导致TButton
带有属性的表单上的Default = true
触发它OnClick
。
当它具有输入焦点时,我怎样才能使其TVirtualStringTree
优先,以便它在将其发送到表单之前(最好而不是)响应用户按下 Enter 本身?
delphi - 选择更改后如何检索 VirtualStringTree 中的选定节点?
我启用了 MultiSelect 选项的 VST。How can I retrieve the list of selected nodes in VirtualStringTree when the selection changes via keyboard events?
我尝试在 OnFocusChanged 事件中使用以下代码
如果我使用鼠标和 shift 键,这很好用,但是,如果我使用键盘,即选择节点,然后按 shift,然后按向下箭头选择多个节点,则选择返回完整列表 - 1。
这似乎是一个错误?关于如何在使用键盘时获得完整选择的任何想法?