如何使用VCL.Styles获取Forms背景颜色

时间:2013-08-26 21:52:08

标签: delphi delphi-xe4 vcl-styles

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

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

2 个答案:

答案 0 :(得分:12)

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

例如,使用

获取TEdit组件的背景颜色
TStyleManager.ActiveStyle.GetSystemColor(clWindow)

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

TStyleManager.ActiveStyle.GetSystemColor(clBtnFace)

答案 1 :(得分:0)

您也可以使用:

StyleServices.GetStyleColor(scWindow)