【问题标题】:How to hide expand/collapse button in Virtual Treeview?如何隐藏虚拟树视图中的展开/折叠按钮?
【发布时间】:2016-03-10 16:42:35
【问题描述】:

我使用 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;

我还根据复选框显示/隐藏 TreeLines

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;

当我想阻止用户展开、折叠节点时,如何隐藏这个小加号。有什么建议吗?


编辑:

为了消除与表单图标的混淆,这是来自 Virtual Treeivew 5 演示库的演示项目。 IDE中的表格有Delphi XE7图标,运行项目时会出现这个旧图标。不知道为什么。只是想确保清楚我使用的是 XE7 而不是任何较旧的 Delphi 版本,因为相同的解决方案可能不适用。

在 IDE 中,如果是 XE7 图标:

【问题讨论】:

  • 在旁注中,您的问题被标记为 Delphi-xe7 但您的应用程序上的图标显示为非常旧的 Delphi 版本...?
  • 一开始没有注意到...这是一个来自 Virtual Treeview 5 演示库的演示项目,Minimal demo。 IDE 在 Form 上显示 XE7 图标,在运行这个旧的时会出现......不知道为什么。
  • 必须是旧的原始.res 文件持有它。
  • 我在 IDE 中添加了一个表单图标的图像,所以我在询问 XE7 或更早的 Delphi 版本时不会混淆 - 如果相同的解决方案不适用于旧版本。

标签: delphi delphi-xe7 virtualtreeview


【解决方案1】:

您正在寻找的附加选项是toShowButtons。在你使用toShowTreeLines的地方使用它。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2013-06-01
    • 2017-11-24
    • 2010-12-15
    • 2011-03-22
    • 1970-01-01
    相关资源
    最近更新 更多