【发布时间】:2017-09-22 14:06:38
【问题描述】:
我正在尝试让 VST 在其高度和宽度发生更改时自动调整大小。 我对其他放置的 VCL 组件没有这个问题,其中一些具有像 TImage 这样的属性“Stretch”,可以让它们自动调整。 VST 保持顽固,并保持 nodeHeights 和 Column 宽度。
- 我见过 Header->hoAutoResize, hoColumnResize。在这件事上, AutoSizeIndex -1 不是那么有用,因为我需要每一列都按比例缩小。我认为这就是为什么这些不做任何事情的原因。 将 AutoSizeIndex 更改为我的最后一列(3,因为我有 4 列)并且 hoAutoResize = True;仍然不会影响我的列宽。 hoColumnResize 是允许用户调整列大小的设置,所以也没有运气
- 我见过 TreeOptions->AutoOptions->toAutoChangeScale 和 toAutoSpanColumns。 我发现 toAutoSpanColumns 在我的情况下会适得其反,所以它是关闭的。我的字体大小正在调整。
- 我找到了 Tree.Scaleby,但我无法让它对我有利,而且它在我拥有的官方 .pdf 文档中没有记录。
- 所有 4 列的 minWidth 均为 10,因此没有问题
- 所有 4 个都有 coEnabled、coVisible、coResizable := True 和 coFixed、coSmartResize := False fwiw
我想我只是打错了设置组合之类的。 任何提示都会很棒,谢谢。
【问题讨论】:
-
自动调整列宽应该可以工作。自动调整节点/行高似乎是一个不寻常的概念:网格和 TListView 等控件以及 Windows 资源管理器或 Outlook 等应用程序不这样做。
-
我只是想在 VST 拥有的大量选项中,会有一些功能类似于“拉伸”的东西,只是具有列宽。原来你必须在 OnResize 中手动完成...
标签: delphi vcl delphi-10-seattle virtualtreeview tvirtualstringtree