Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Удалить отображение текущей даты из TDateTimePicker

Delphi , Компоненты и Классы , TDateTimePicker

Удалить отображение текущей даты из TDateTimePicker

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

uses
   CommCtrl;

 procedure TForm1.DateTimePicker1DropDown(Sender: TObject);
 var
   wnd: HWND;
   Style: Integer;
 begin
   wnd := DateTime_GetMonthCal(DateTimePicker1.Handle);
   if wnd <> 0 then
   begin
     Style := GetWindowLong(wnd, GWL_STYLE);
     SetWindowLong(wnd, GWL_STYLE, Style or MCS_NOTODAY or MCS_NOTODAYCIRCLE);
   end;
 end;

 { 
  The calendar will still highlite the current day but the circle and the 
  today display at the bottom are gone. 
}

Here is the translation of the provided text into Russian:

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

Вот подробное описание того, что код делает:

  1. Процедура DateTimePicker1DropDown вызывается каждый раз, когда выпадающее меню для контрола DateTimePicker1 открывается.
  2. Код использует функцию DateTime_GetMonthCal для получения handle внутреннего месячного календаря контрола, связанного с контролом DateTimePicker1.
  3. Если handle не равен нулю (т.е., если месячный календарь существует), код получает стиль окна с помощью функции GetWindowLong и константы GWL_STYLE.
  4. Затем код модифицирует стиль окна, добавляя стили MCS_NOTODAY и MCS_NOTODAYCIRCLE с помощью оператора bitwise OR (or). Эти стили отключают отображение текущей даты и круга вокруг нее соответственно.

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

Надо отметить, что есть альтернативные способы достижения этого результата без модификации стиля окна месячного календаря. Например, вы можете создать custom календарь и обрабатывать рисование текущего дня самостоятельно, или использовать third-party библиотеку, которая предоставляет больше гибкости в настройке внешнего вида даты пикера.

Удаление отображения текущей даты из TDateTimePicker можно выполнить с помощью процедуры DateTimePicker1DropDown, которая изменяет стиль календаря для скрытия круга и подписи "Сегодня".


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TDateTimePicker ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:56:01/0.0054888725280762/1