Delphi t工具按钮高度随样式增加=TBSDROPTDOWN
我注意到,当您将按钮的样式设置为tbsDropdown时,TToolButton的高度会增加。我可以理解宽度的增加,因此按钮有空间绘制向下箭头,但我不确定是否需要增加高度 重现问题的步骤(Delphi 2010,Windows 7 x64):Delphi t工具按钮高度随样式增加=TBSDROPTDOWN,delphi,Delphi,我注意到,当您将按钮的样式设置为tbsDropdown时,TToolButton的高度会增加。我可以理解宽度的增加,因此按钮有空间绘制向下箭头,但我不确定是否需要增加高度 重现问题的步骤(Delphi 2010,Windows 7 x64): 将TToolbar添加到表单,ShowCaptions=True 右键单击可将按钮添加到工具栏 设置按钮样式=tbsDropDown,注意按钮的高度会增加 当有图像指定给对象时,会出现相同的高度增加 工具栏,在这种情况下,已经有足够多的垂直空间可用 在
- 将TToolbar添加到表单,ShowCaptions=True
- 右键单击可将按钮添加到工具栏
- 设置按钮样式=tbsDropDown,注意按钮的高度会增加
是否有一种在不破坏VCL的情况下解决此问题的方法,或者将其硬编码到Windows控件中?它是底层Windows控件的一部分。快速查看
ComCtrls
显示,更改TToolButton.Style
将调用它的SetStyle
方法。如果在SetStyle
中,ShowCaptions
为True,则TToolBar.ButtonWidth
和ButtonHeight
都设置为0,并且调用TToolButton.RecreateButtons
重新创建按钮
,然后调用TToolBar.ResizeButtons
,只需使用将消息发送(发布)到工具栏
Perform(TB_AUTOSIZE, 0, 0);
根据
通过设置按钮或位图大小或首次添加字符串来更改工具栏大小后
由于
SetStyle
将ButtonWidth
和ButtonHeight
设置为0,因此此消息似乎已正确发送。底层windows控件中的主题支持似乎有问题。关闭运行时主题(项目/选项/应用程序,取消选中“启用运行时主题”复选框),忽略设计时增加的按钮高度(Delphi IDE使用主题)并运行应用程序-您将看到工具栏按钮的正常高度