【问题标题】:TCoolBar bands growing when resizing form调整窗体大小时 TCoolBar 条带增长
【发布时间】:2013-03-21 19:48:43
【问题描述】:

在 Delphi XE2 VCL 表单应用程序中,我在主表单顶部放置了一个 TCoolBar。我已在此栏中添加了两个 TCoolBands。然后我将TToolBar 插入到这两个频段中的每一个中。每个工具栏都有几个按钮。

问题是,当我在水平方向调整表单大小时(无论是在设计时还是运行时),带的宽度都会增加,无论我是使表单变大还是变小。即使我的表格变小,条带也会增长,直到第二个最终被推到视野之外。

为什么会发生这种情况以及如何阻止它发生?

【问题讨论】:

  • 调整MinWidth属性。虽然我没有得到这种行为,但它解决了工具栏所需的最小尺寸。我个人不喜欢这种控制。它们并不像看起来那么酷。
  • @TLama,刚试了,没用:(
  • 这不是调整大小的解决方案(在我看来很奇怪)。它只是保持您看到工具栏所需的最小宽度。调整大小本身是在TCoolBar硬编码 的,我想说,如果没有子类来更改它,您将没有机会更改它。抱歉,我现在正忙于深入了解(也许稍后我可以看看)。

标签: delphi delphi-xe2 vcl window-resize


【解决方案1】:

AFAIK,唯一的解决方案(感谢 Ludek Stauber)是修补 Vcl.ComCtrls.pas。在方法 TCoolBar.GetCaptionSize 的末尾添加两行来处理 IE6 和更高版本:

  { The grip size in IE4 is 3 pixels narrower than IE3 }
  if GetComCtlVersion < ComCtlVersionIE4 then
    Inc(Result, GripSizeIE3)
  // begin handle IE6
  else if GetComCtlVersion >= $0006000A {ComCtlVersionIE610} then
    Inc(Result, 4 {GripSizeIE610})
  // end handle IE6
  else

【讨论】:

  • 这是the source 的此错误及其修复方法。
猜你喜欢
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多