【发布时间】:2012-09-20 15:47:15
【问题描述】:
我注意到 Delphi 工具栏有一个相当烦人的奇怪之处。我有一个TToolbar,它有逻辑的图标组。为了使分组脱颖而出,我想使用分隔按钮,样式为tbsDivider。
当我这样做时,它看起来像这样:
注意每个图标之间的双垂直线。右手是在分隔工具按钮的中间。左边的在分隔工具按钮的左边缘。
所以,我可以切换到 tbsSeparator 删除中间线:
但我并不热衷于此,因为我希望分隔线位于中间。
我查看了我的真实应用的一个古老版本,发现它有居中的分隔符。当 Windows 主题被禁用时,这似乎是可能的。以下是 tbsDivider 和删除应用程序清单后的样子:
这就是我正在寻找的布局。当主题活跃时,这是否可以实现?
我确实在 Embarcadero 论坛上找到了有关该问题的讨论,但没有有用的见解:https://forums.embarcadero.com/message.jspa?messageID=467842
为了完整起见,这里是 .dfm 文件的相关摘录
object ToolButton1: TToolButton
Left = 0
Top = 0
ImageIndex = 0
end
object ToolButton2: TToolButton
Left = 23
Top = 0
Width = 16
ImageIndex = 1
Style = tbsDivider
end
object ToolButton3: TToolButton
Left = 39
Top = 0
ImageIndex = 1
end
object ToolButton4: TToolButton
Left = 62
Top = 0
Width = 16
ImageIndex = 2
Style = tbsDivider
end
object ToolButton5: TToolButton
Left = 78
Top = 0
ImageIndex = 2
end
【问题讨论】:
-
我可以确认这个问题也出现在我的机器上(Windows 7 Home Premium 64 位,Delphi 2009,主题已启用)。问题(如果对每个人都不是很明显)是最左边的线不应该在那里。分隔符应该完全空白,并且分隔符中间应该有一行。
-
你知道是VCL还是Windows问题?
-
这既是一个 MS 通用控件问题,也是一个 VCL 缺陷。