Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Вниз

Выделение дней в календаре   Найти похожие ветки 

 
Jetus ©   (2004-08-26 23:48) [0]

Доброе время суток! Уважаемые господа-мастера, подскажите, как бы это умудриться и выделить субботы и воскрксения в TCalendar другим цветом?


 
NAlexey ©   (2004-08-27 13:22) [1]

Ч.з сообщение MCN_GETDAYSTATE.


 
Jetus ©   (2004-08-28 13:35) [2]

Спасибо, а можно примерчик, а?


 
Sour Smile   (2005-02-07 16:42) [3]

> NAlexey ©   (27.08.04 13:22) [1]
> Ч.з сообщение MCN_GETDAYSTATE.

MCN_GETDAYSTATE это для компонента TMonthCalendar, а не для TCalendar (наследник TCustomGrid о котором писал Jetus), да и выделяет он не цветом, а жирным шрифтом. И несмотря на то, что это сообщение компонент TMonthCalendar уже обрабатывает в событии OnGetMonthInfo, для этой цели наверно таки прийдётся писать своего наследника, так как на вход этого события подаётся только номер месяца, а вот год Борланды почемуто решили не сообщать (без года понятное дело невозможно вычислить день недели).

А по поводу компоненты TCalendar - к сожалению тоже необходимо создать потомка и переписать метод DrawCell, но здесь безусловно больше свободы действий. Например так:
uses
 ..., Graphics;
type
 TNewCalendar = class(TCalendar)
 protected
   procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
 end;
...
procedure TNewCalendar.DrawCell(ACol, ARow: Integer; ARect: TRect;
 AState: TGridDrawState);
var
 TheText: String;
 AYear, AMonth, ADay: Word;
 DrawDay: Integer;
begin
 TheText := CellText[ACol, ARow];
 if TheText="" then
 begin
   Canvas.Brush.Color := clGray;
   Canvas.Font.Color := Font.Color;
 end else
 if TryStrToInt(TheText, DrawDay) then
 begin
   DecodeDate(CalendarDate, AYear, AMonth, ADay);
   if (Trunc(EncodeDate(AYear, AMonth, DrawDay))mod 7) < 2 then
   begin
     Canvas.Brush.Color := clRed;
     Canvas.Font.Color := clWhite;
   end else
   begin
     Canvas.Brush.Color := Color;
     Canvas.Font.Color := Font.Color;
   end;
 end;
 inherited;
end;



Страницы: 1 вся ветка

Форум: "Компоненты";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.055 c
11-1109622535
Shanker
2005-02-28 23:28
2005.10.30
Баг в MCK?


14-1128863271
cyborg
2005-10-09 17:07
2005.10.30
Помогите исправить графрежим в Мандрейк Линукс 9


14-1128656389
КаПиБаРа
2005-10-07 07:39
2005.10.30
Опрос. Отношение к жизни


9-1118591031
germany
2005-06-12 19:43
2005.10.30
Помогите с установкай GlScene


2-1128413210
Гость22
2005-10-04 12:06
2005.10.30
Есть ListBox и привязаный к нему PopupMenu.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский