首页 > 解决方案 > 如何在虚拟树视图中获取当前选定的节点

问题描述

我正在使用带有虚拟树视图的 Delphi XE3。如果 multiselect 为 False,如何在虚拟树视图中获取当前选中的节点。我在文档中找到,并且有一个相关的方法:

TBasedVirtualTree.Selected[]:这需要一个 PVirtualNode 作为索引来获取选择状态。

但不会给出当前选中的节点。

我将描述我如何尝试找出解决方案的过程:

  1. 首先,我尝试在 Virtual TreeView 的帮助文档中搜索,关键字为“Selected”。然后我会得到 71 个结果。其中我找到了 TBaseVirtualTree.Selected 属性,但这需要 PVirtualNode 作为索引。

  2. 然后在帮助文档的右上角,我尝试找到相关的属性,但是只能找到SearchBuffer和SelectedCount,前者是无关的,后者是获取选中的节点数,而不是当前选中的节点。

  3. 这也是一个可以获取选定节点数组的函数。但是,当我尝试调用它时,我发现它不可用。

这就是我发布这个问题的原因。

谢谢

标签: delphivirtualtreeview

解决方案


声明于TBaseVirtualTree

function GetFirstSelected(ConsiderChildrenAbove: Boolean = False): PVirtualNode;

请注意,您可能有几个选定的节点,并且要访问其他节点,请调用

function GetNextSelected(Node: PVirtualNode; ConsiderChildrenAbove: Boolean = False): PVirtualNode;


推荐阅读