Сбой стилей VCL TDateTimePicker в XE2, который происходит только в Windows Classic Theme

Думаю, это еще одна причина, по которой стили VCL не готовы к реальному использованию.

Элемент управления TDateTimePicker выглядит нормально без стилей VCL. Включите любой стиль vcl, и я получу такой вид:

enter image description here

Я могу отключить стили vcl только для этого типа компонента, зарегистрировав хук стиля, но это выглядит очень уродливо.

Это на Delphi XE2 с установленным обновлением 4.

В идеале, я надеюсь, что есть обходной путь, или некоторые свойства средства выбора даты и времени, или какой-то подкласс средства выбора даты и времени, который я мог бы сделать, чтобы заставить средство выбора даты и времени правильно рисовать и выбирать тему.

Обратите внимание, что обычные поля со списком оформлены правильно. Обратите внимание, что это легко воспроизводится в самом минимальном образце проекта, который только можно себе представить. да. Это еще одна ошибка стилей.

ОбновлениеЭто может быть связано с платформой, связанной с версиями Windows Common Controls в Windows Server 2008 R2 без Aero («Desktop Experience» в терминах серверных компонентов Windows). Мне просто пришло в голову после того, как другие люди не смогли воспроизвести это, попробовать это на нескольких разных машинах с Windows. После этого я обнаружил, что проблема воспроизводится только в Windows Server 2008 R2. Некоторые из наших клиентов используют Windows Server 2008 R2. Как вы знаете, основной причиной использования стилей VCL является то, что они позволяют вашему приложению выглядеть одинаково независимо от темы Windows.Однако в приведенном выше случае все темы приложения правильно настроены, за исключением элемента управления DateTimePicker, который имеет неправильную тему, и только в Windows Server 2008 R2. То же демонстрационное приложение на базе XE2 прекрасно работает в Windows 7.

Как в рабочей, так и в нерабочей системе в папке SysWow64 есть файл ComCtl32.dll с версией 5.82.7601.17514. Однако очевидно, что родная компоновка и внешний вид этих элементов управления отличаются, когда темы VCL отключены, и это влияет на код оформления, который дает сбой.

Обновление 2 : Сообщается об ошибке: Запись контроля качества 106783

9
задан Warren P 29 June 2012 в 15:03
поделиться