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

Bil*_*ill 6 delphi vcl-styles delphi-xe4

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

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

RRU*_*RUZ 14

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

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

TStyleManager.ActiveStyle.GetSystemColor(clWindow)
Run Code Online (Sandbox Code Playgroud)

并获取表单的默认背景颜色尝试

TStyleManager.ActiveStyle.GetSystemColor(clBtnFace)
Run Code Online (Sandbox Code Playgroud)