如何在设计时设置 TToolButton 的准确高度?
How to set exact Height of TToolButton at design-time?
在 Delphi 10.1.2 VCL 应用程序中,我在 TToolBar
:
上有一个 TToolButton
object tlbDocProperties: TToolBar
AlignWithMargins = True
AutoSize = False
Left = 1
Top = 28
Width = 422
Height = 28
Margins.Left = 0
Margins.Right = 0
BorderWidth = 1
ButtonWidth = 148
Color = clBtnFace
DoubleBuffered = True
EdgeInner = esNone
EdgeOuter = esRaised
Images = cxImageList16Bookmarks
Indent = 5
List = True
ParentColor = False
ParentDoubleBuffered = False
ShowCaptions = True
TabOrder = 0
Transparent = False
object btnEditDocProps: TToolButton
AlignWithMargins = False
Left = 5
Top = 0
Height = 22
Down = False
AutoSize = False
Caption = 'Edit Document Properties'
ImageIndex = 56
Style = tbsCheck
OnClick = btnEditDocPropsClick
end
end
每当我尝试在设计时将 TToolButton
的高度从 22 更改为 24 时,它会自动恢复为 22。我已经为 TToolButton
和 TToolButton
尝试了许多不同的设置TToolBar
在设计时,但它总是快速返回。
那么如何在设计时将 TToolButton
的高度从 22 更改为 24?
禁用 TToolBar
的 Show Caption
属性,因为它会导致按钮根据标题大小调整大小
您还可以在此处阅读针对您的问题的一种可能解决方案
Why does a TToolBar calculate button widths automatically when ShowCaption is set True
请注意,您还可以通过手动放置其他按钮,例如 TButton
或 TToolbar
上的 TSpeedButton
。它们都允许您显示它们的标题而无需使用 TToolBar.ShowCaptions
属性 启用,但它们看起来确实不同。
编辑: 将 TToolBar 按钮的高度增加到 24 的另一个解决方案是增加 TToolBar.Font.Size
。
当使用 Tahoma
作为字体时,我必须将大小从默认的 8 增加到 11 以使按钮高度为 24。
因此,请尝试调整字体大小以找到适合自己的值。
我发现了一个非常实用的技巧:
我没有为 TToolButton
使用 16x16 图标,而是使用 16x18 图像列表(宽度 = 16,高度 = 18)中的 16x18 图标。
现在 TToolButton
的高度会根据需要自动调整为 24!
要将按钮设置为所需的高度,请在图标编辑器中修改字形的 canvas 高度,方法是在字形的顶部和底部添加一些透明像素,例如:
使用上面的 TToolBar
示例,我从几个测试中得出了这个经验规则:
Button Height := Image Height + 6
这意味着:字形高度为 18 时,按钮高度为 24,字形高度为 20 时,按钮高度为 26,依此类推。
记住:这仅适用于上述配置,即当 ToolBar.List = True
和 Toolbar.ShowCaptions = True
时。当然,您需要一个 ToolBar.Images
ImageList,其中 ImageList.Height
匹配字形高度。
将工具栏放在面板中。
将面板字体大小和类型设置为您喜欢的任何内容。
在工具栏中,将父字体设置为“True”。
工具栏按钮的大小将自动调整以与其所在面板的字体保持一致。
然后只需调整该面板的字体大小和类型,直到获得所需的工具按钮大小。
您不需要在工具栏中打开或关闭 ShowCaption。没关系。
问候
格雷姆
在 Delphi 10.1.2 VCL 应用程序中,我在 TToolBar
:
TToolButton
object tlbDocProperties: TToolBar
AlignWithMargins = True
AutoSize = False
Left = 1
Top = 28
Width = 422
Height = 28
Margins.Left = 0
Margins.Right = 0
BorderWidth = 1
ButtonWidth = 148
Color = clBtnFace
DoubleBuffered = True
EdgeInner = esNone
EdgeOuter = esRaised
Images = cxImageList16Bookmarks
Indent = 5
List = True
ParentColor = False
ParentDoubleBuffered = False
ShowCaptions = True
TabOrder = 0
Transparent = False
object btnEditDocProps: TToolButton
AlignWithMargins = False
Left = 5
Top = 0
Height = 22
Down = False
AutoSize = False
Caption = 'Edit Document Properties'
ImageIndex = 56
Style = tbsCheck
OnClick = btnEditDocPropsClick
end
end
每当我尝试在设计时将 TToolButton
的高度从 22 更改为 24 时,它会自动恢复为 22。我已经为 TToolButton
和 TToolButton
尝试了许多不同的设置TToolBar
在设计时,但它总是快速返回。
那么如何在设计时将 TToolButton
的高度从 22 更改为 24?
禁用 TToolBar
的 Show Caption
属性,因为它会导致按钮根据标题大小调整大小
您还可以在此处阅读针对您的问题的一种可能解决方案
Why does a TToolBar calculate button widths automatically when ShowCaption is set True
请注意,您还可以通过手动放置其他按钮,例如 TButton
或 TToolbar
上的 TSpeedButton
。它们都允许您显示它们的标题而无需使用 TToolBar.ShowCaptions
属性 启用,但它们看起来确实不同。
编辑: 将 TToolBar 按钮的高度增加到 24 的另一个解决方案是增加 TToolBar.Font.Size
。
当使用 Tahoma
作为字体时,我必须将大小从默认的 8 增加到 11 以使按钮高度为 24。
因此,请尝试调整字体大小以找到适合自己的值。
我发现了一个非常实用的技巧:
我没有为 TToolButton
使用 16x16 图标,而是使用 16x18 图像列表(宽度 = 16,高度 = 18)中的 16x18 图标。
现在 TToolButton
的高度会根据需要自动调整为 24!
要将按钮设置为所需的高度,请在图标编辑器中修改字形的 canvas 高度,方法是在字形的顶部和底部添加一些透明像素,例如:
使用上面的 TToolBar
示例,我从几个测试中得出了这个经验规则:
Button Height := Image Height + 6
这意味着:字形高度为 18 时,按钮高度为 24,字形高度为 20 时,按钮高度为 26,依此类推。
记住:这仅适用于上述配置,即当 ToolBar.List = True
和 Toolbar.ShowCaptions = True
时。当然,您需要一个 ToolBar.Images
ImageList,其中 ImageList.Height
匹配字形高度。
将工具栏放在面板中。 将面板字体大小和类型设置为您喜欢的任何内容。 在工具栏中,将父字体设置为“True”。 工具栏按钮的大小将自动调整以与其所在面板的字体保持一致。 然后只需调整该面板的字体大小和类型,直到获得所需的工具按钮大小。 您不需要在工具栏中打开或关闭 ShowCaption。没关系。 问候 格雷姆