9

即使在使用 vcl,styles 时,某些组件也会使用 Color 属性设置来绘制颜色。因此,当使用 Metro 深色样式(接近黑色)并且组件颜色设置为 clWindow 时,组件颜色与样式不匹配。有没有办法在使用 vcl.style 时获取表单背景颜色,以便可以设置组件的颜色属性以匹配表单样式的背景颜色?

颜色可以通过在样式设计器中加载样式来获得,但我想在运行时获取颜色值。

4

2 回答 2

17

您可以使用GetSystemColor传递正确系统颜色常量的函数来获取

例如获取 TEdit 组件使用的背景颜色

TStyleManager.ActiveStyle.GetSystemColor(clWindow)

要获取表单的默认背景颜色,请尝试

TStyleManager.ActiveStyle.GetSystemColor(clBtnFace)
于 2013-08-26T22:09:09.613 回答
1

您也可以使用:

StyleServices.GetStyleColor(scWindow)
于 2013-09-26T12:25:28.240 回答