Delphi 如何在虚拟树视图中隐藏展开/折叠按钮?

Delphi 如何在虚拟树视图中隐藏展开/折叠按钮?,delphi,delphi-xe7,virtualtreeview,Delphi,Delphi Xe7,Virtualtreeview,我使用VirtualStringTree(VST)显示分组的数据、标题详细信息。我需要有一个选项,允许用户展开、折叠标题以查看详细信息,在某些情况下,我需要将数据显示为静态视图,在静态视图中,它们无法展开、折叠,只能查看完整的展开树: 以下是用户可以展开、折叠节点和子节点的示例: 下面是一个示例,当我想阻止用户展开/折叠节点并始终看到所有展开的节点(或显示的任何内容): 在这个测试中,我通过“允许展开/折叠/复选框”进行控制 我通过添加以下内容来防止展开、折叠: Allowed:=Check

我使用VirtualStringTree(VST)显示分组的数据、标题详细信息。我需要有一个选项,允许用户展开、折叠标题以查看详细信息,在某些情况下,我需要将数据显示为静态视图,在静态视图中,它们无法展开、折叠,只能查看完整的展开树:

以下是用户可以展开、折叠节点和子节点的示例:

下面是一个示例,当我想阻止用户展开/折叠节点并始终看到所有展开的节点(或显示的任何内容):

在这个测试中,我通过“允许展开/折叠/复选框”进行控制

我通过添加以下内容来防止展开、折叠:

Allowed:=CheckBox1.Checked;
进入OnCollapsing/OnExpanding:

procedure TMainForm.VSTCollapsing(Sender: TBaseVirtualTree;
  Node: PVirtualNode; var Allowed: Boolean);
begin
  Allowed:=CheckBox1.Checked;
end;

procedure TMainForm.VSTExpanding(Sender: TBaseVirtualTree;
  Node: PVirtualNode; var Allowed: Boolean);
begin
  Allowed:=CheckBox1.Checked;
end;
我还使用复选框显示/隐藏树线

procedure TMainForm.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.Checked then
    VST.TreeOptions.PaintOptions:=VST.TreeOptions.PaintOptions + [toShowTreeLines]
  else
    VST.TreeOptions.PaintOptions:=VST.TreeOptions.PaintOptions - [toShowTreeLines];
end;
当我想阻止用户展开、折叠节点时,如何隐藏这个小加号。有什么建议吗?


编辑:

为了消除与表单图标的混淆,这是虚拟树5演示库中的演示项目。IDE中的表单具有Delphi XE7图标,当运行项目时,会显示此旧图标。不知道为什么。我只是想确保我使用的是XE7,而不是任何旧的Delphi版本,因为在这些版本中,相同的解决方案可能不适用

在IDE中,如果图标为XE7图标:


您要查找的附加选项是
toShowButtons
。在使用
toShowTreeLines
的同一位置使用它

该选项记录在VirtualTrees.pas中的
tvtpainoption
声明中:

    toShowButtons,             // Display collapse/expand buttons left to a node.

另一方面,您的问题被标记为Delphi-xe7,但应用程序上的图标显示为非常旧的Delphi版本…?起初没有注意到…这是虚拟Treeview 5演示库中的一个演示项目,最小演示。IDE在窗体上显示XE7图标,当运行此旧图标时,会悄悄进入。。不知道为什么。一定是旧的原始
.res
文件保存在它上面。我在IDE中添加了一个表单图标的图像,所以我询问的是XE7或更旧的Delphi版本,以防相同的解决方案不适用于更旧的版本。