Могу ли я использовать новые стили Delphi VCL, чтобы просто покрасить определенный объект (TPageControl) в одиночку?

Я начинаю со стилей Delphi VCL и вижу, что очень легко применить предопределенный стиль, используя "Project | Параметры "и затем" Приложение | Внешность'.

Естественно, эти стили влияют на весь внешний вид приложения. Я хотел бы сохранить стиль Windows по умолчанию (я использую "Темы выполнения включены"), но я хочу изменить белый фон по умолчанию, показанный TPageControl. Я наткнулся на эту прекрасную статью о создании красочных вкладок управления страницами, в которой показано, как переопределить цвет вкладок, но, похоже, он применяется только при загрузке стиля.

Мой вопрос заключается в том, как (можно ли?) Использовать TStyleServices без загрузки файла стиля, чтобы получить только компоненты TTabSheet и установить цвет?

(И да, я знаю, что есть ряд других замен TPageControl, я хочу придерживаться стандартных элементов управления).

1 ответ

Вы можете получить доступ к элементам (цветам, изображениям) загруженных стилей VCL в любое время, даже если активен собственный стиль Windows.

var
  LStyleServices : TCustomStyleServices;
begin
  LStyleServices:=TStyleManager.Style['AnyLoadedVclStyle'];
  //draw with the LStyleServices 
  ....       
end;

Но только вы можете использовать крючки Vcl Style для рисования элементов управления, когда выбран собственный стиль.

Другие вопросы по тегам