加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 更改TToolBar背景颜色

发布时间:2020-12-15 09:07:28 所属栏目:大数据 来源:网络整理
导读:我遇到了一个问题,我通常无法使用其属性ToolBar.Color更改TToolBar的背景颜色(例如clwhite).我在Delphi方面不是很有经验,我找到了两种可能的解决方案,但我仍然想知道,如何正确地改变它或为什么它不可能. 1)将样式更改为渐变,但它也会更改按钮的基本动画. Too
我遇到了一个问题,我通常无法使用其属性ToolBar.Color更改TToolBar的背景颜色(例如clwhite).我在Delphi方面不是很有经验,我找到了两种可能的解决方案,但我仍然想知道,如何正确地改变它或为什么它不可能.

1)将样式更改为渐变,但它也会更改按钮的基本动画.

ToolBar.DrawingStyle := dsGradient
ToolBar.GradientStartColor := clWhite
ToolBar.GradientEndColor := clWhite

2)使用以下设置将TToolBar放入TPanel中.

Panel.Color := clwhite
ToolBar.Parent := Panel
ToolBar.Align := alClient
ToolBar.Transparent := True

解决方法

默认情况下,TToolbar会忽略其Color属性.
默认情况下,Transparent属性为true,因此无论工具栏的父级颜色是什么,都会闪耀.

如果您查看VCL源代码,您会看到TToolbar没有自己的绘图;它是ComCtl32.dll中ToolbarWindow32 Win32公共控件的包装器.
这是绘图的代码.
当Windows XP被引入时,Microsoft添加了UI主题,Borland通过VCL.Themes.TStyleManager支持了这一点.
您可以通过样式管理器更改公共控件的外观:项目 – >选项 – >外观 – >自定义样式,但很难知道它有什么影响,因为IDE不显示结果(你可以在运行时看到它),你只能从有限的奇怪主题列表中选择;这个功能也是错误的.

TPageControl / TTabSheet也是如此,它不会发布其Color propery.
通过ComCtl32.dll导入并由VCL.ComCtrls实现的所有控件都会受到这些不一致的影响.

简而言之
没有什么可以让TToolbar尊重它的Color属性.
您已经找到了解决方法:

>使用相同的GradientEndColor和GradientStartColor设置渐变.>将工具栏放在另一个控件(例如TPanel)上并更改该控件的颜色,因为工具栏是透明的,父颜色将透过.您需要将面板的BevelInner / BevelOuter设置为bvNone.>启用VCL样式并遇到与该公司复选框反模式相关的所有问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读