![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Делаем определенные дни жирными в TDateTimePicker в Delphi7Delphi , Компоненты и Классы , TDateTimePickerВ статье мы рассмотрим, как сделать определенные дни жирными в компоненте TDateTimePicker в Delphi7. Этот компонент является потомком TMonthCalendar, и изначально кажется, что это должно быть возможно. Однако, как оказалось, это не так просто, и есть несколько нюансов, которые нужно учитывать. Изначально, пользователь столкнулся с проблемой, что не может сделать определенные дни жирными в TDateTimePicker. Он нашел пример кода на C#, но хотел остаться с стандартным компонентом, без использования третьих-party controls. После изучения вопроса, было найдено решение, которое работает под Windows Vista и Windows 7. Для этого нужно изменить стиль MonthCalendar, чтобы включить стиль MCS_DAYSTATE. Затем, можно использовать функцию SendMessage для установки стиля дня для каждого дня в MonthCalendar. Однако, пользователь столкнулся с проблемой, что информация о жирном шрифте теряется, когда меняется вид календаря. Это происходит потому, что MonthCalendar запрашивает эту информацию, когда она ей нужна, и не сохраняет ее. В документации к MCM_SETDAYSTATE сообщается, что состояние дня не будет сохранено, когда другой участок календаря будет проскроллен в виду. В качестве альтернативного решения, пользователь может использовать настоящий MonthCalendar вместо того, который отображается в TDateTimePicker при нажатии кнопки DropDown. Еще одним вариантом является использование одного из уже доступных кастомных компонентов. Вот пример кода, который демонстрирует, как установить жирный шрифт для определенных дней в MonthCalendar под Windows Vista и Windows 7:
Обратите внимание, что вам нужно добавить манифест Vista в файл, иначе это не будет работать. В заключение, хочется отметить, что сделать определенные дни жирными в TDateTimePicker в Delphi7 не так просто, как может показаться на первый взгляд. Однако, с помощью правильной настройки стиля MonthCalendar и использования функции SendMessage, это можно сделать под Windows Vista и Windows 7. В качестве альтернативы, можно использовать настоящий MonthCalendar или один из уже доступных кастомных компонентов. В статье рассматривается проблема изменения стиля шрифта определенных дней в компоненте TDateTimePicker в Delphi7, и предлагается решение для Windows Vista и Windows 7. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: TDateTimePicker ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |