Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Календарь& Delphi


Автор: Auron 3.10.2011, 15:31
Доброго времени суток. Вопрос состоит в том, что мне на форме нужно размещать календарь.на нем разместить красные даты календаря, но чтобы  они динамически менялись при смене года.Я думал сделать массив с датами и разместить стандартный календарь но вопрос как поместить даты на сам календарь?

Автор: niteo 19.10.2011, 14:28
Нарисуй свой календарь в StringGrid-е или поковыряй исходники календаря из вкладки Samples

Автор: Snowy 19.10.2011, 17:33
TMonthCalendar
Событие OnGetMonthInfo (или OnGetMonthBoldInfo)
Метить дни нужно битовой маской - каждый бит означает число месяца.
Пример обработчика:
Код
procedure TForm1.MonthCalendar1GetMonthBoldInfo(Sender: TObject; Month,
  Year: Cardinal; var MonthBoldInfo: Cardinal);
begin
  case Month of
    1:  MonthCalendar1.BoldDays([1,2,3,4,5,6,7,8,9,10], MonthBoldInfo);
    10: MonthBoldInfo := 1 shl 20 or 1 shl 21 or 1 shl 22;
  end;
end;
Здесь показано два варианта задания дня:
Январь задается функцией, октябрь задается вручную установкой битов. 
Если нужен календарь на год - нужно просто растянуть календарик пошире, чтобы поместилось 12 месяцев.
По умолчанию он имеет размер на 1 месяц..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)