Вверх ↑
Ответов: 183
Рейтинг: 4
#1: 2025-03-28 13:15:22 ЛС | профиль | цитата
nesco, сам фон не меняется и с этими параметрами. На том сайте автор написал про "update 1", где пишет, что можно решить вопрос "танцем с бубнами".

Таким образом, возможное решение состоит в том, чтобы перехватывать сообщения WM_PAINT и WM_ERASEBKGND и писать собственный код для отрисовки элемента управления. При использовании стилей Vcl вы можете использовать хук стиля для обработки этих сообщений.
Примечание: этот хук стиля не отображает сфокусированные (выбранные) элементы во внутреннем текстовом поле (комбобоксе) TDateTimePicker. Я оставляю эту задачу на ваше усмотрение.
ОБНОВЛЕНИЕ 2
Я только что написал хук стиля VCL, который включает в себя всю логику для правильного применения стиля VCL к компоненту TDateTimePicker без использования события OnDropDown или события OnCreate формы. Вы можете найти хук стиля VCL здесь (в составе проекта vcl styles utils)

Чтобы использовать его, необходимо добавить в проект модуль Vcl.Styles.DateTimePickers и зарегистрировать перехватчик следующим образом.

TStyleManager.Engine.RegisterStyleHook(TDateTimePicker, TDateTimePickerStyleHookFix);

карма: 1

0
Редактировалось 4 раз(а), последний 2025-03-28 13:19:03