虚拟TreeView中的多个扩展节点可能吗?

时间:2010-01-19 11:42:25

标签: delphi virtualtreeview

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

alt text http://www.remkoweijnen.nl/temp/TreeView.png

这样的布局是否可行?如果没有使用默认组件,我将非常感谢如何在后代中实现这一点。

/编辑:以下截图是使用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

2 个答案:

答案 0 :(得分:4)

你很可能不需要那个。只需要明确说明您需要的分组。第一列可以是多用途的 - 在每个分组级别显示不同的信息 - 例如级别0:服务器,级别1:进程,级别2和更高级别:子进程。 在每个级别上,只有与该级别相关的列才需要显示任何信息。在上面的示例中,级别0仅在第一列中显示服务器名称;其余的列将保持为空。

您可以通过自定义绘图实现尽可能多的加号,但这将是很多工作,我认为结果是不必要的,不寻常的并且容易让用户感到困惑。

答案 1 :(得分:3)

只有一列可以拥有树,其他列可以作为列表视图。带有树的列是主列。

如果两列有一个树并且它们可能“冲突”,我不知道你的分组将如何工作。什么是父节点等等。从技术上讲,这可能不是提供这些细节的最佳方式;用户不希望它以这种方式工作。