Как получить цвет фона форм с помощью VCL.Styles

Некоторые компоненты закрашивают свой цвет с помощью свойства Color, даже если используются стили vcl. Таким образом, при использовании темного стиля Metro (почти черного) и цвета компонентов установлено значение clWindow, цвет компонентов не соответствует стилю. Есть ли способ получить цвет фона форм при использовании vcl.style, чтобы можно было установить свойство цвета компонента в соответствии с цветом фона в стиле форм?

Цвет можно получить, загрузив стиль в дизайнер стилей, но я бы хотел получить значение цвета во время выполнения.

2 ответа

Решение

Вы можете использовать GetSystemColor Функция, передающая правильную системную цветовую константу, чтобы получить

например, чтобы получить цвет фона использования компонента TEdit

TStyleManager.ActiveStyle.GetSystemColor(clWindow)

А чтобы получить цвет фона по умолчанию, попробуйте

TStyleManager.ActiveStyle.GetSystemColor(clBtnFace)

Также вы можете использовать:

StyleServices.GetStyleColor(scWindow)
Другие вопросы по тегам