FAQ VCL
Компоненты\MonthCalendar

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Как выделить несколько дней жирным шрифтом?

procedure TForm1.MonthCalendar1GetMonthInfo(Sender: TObject; Month: Cardinal;
  var MonthBoldInfo: Cardinal);
begin
   if Month = 7 then
      MonthCalendar1.BoldDays( [3, 21, 28], MonthBoldInfo );
end;


Как узнать минимальный размер календаря в текущей локали?

// Ширина контрола с календариком заметно отличается
// в зависимости от установленной в системе локали.
procedure TForm1.Button1Click(Sender: TObject);
const
  MCM_GETMINREQRECT = $1000 + 9;
var
  r: TRect;
begin
   SendMessage(MonthCalendar1.Handle, MCM_GETMINREQRECT, 0, LParam(@r));
   ShowMessage(Format('Width: %d, Height: %d', [r.Right-r.Left, r.Bottom-r.Top]));
end;


Как узнать максимальную ширину надписи "Сегодня такое-то число" в текущей локали?

procedure TForm1.Button1Click(Sender: TObject);
const
  MCM_GETMAXTODAYWIDTH = $1000 + 21;
var
  TodayWidth: Integer;
begin
   TodayWidth := SendMessage(MonthCalendar1.Handle, MCM_GETMAXTODAYWIDTH, 0, 0);
   ShowMessage(Format('Ширина надписи: %d', [TodayWidth]));
end;

При использовании материала - ссылка на сайт обязательна