Вниз
Скачать: CL | DM;

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

 
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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.023 c
14-1128662254
syte_ser78
2005-10-07 09:17
2005.10.30
аналог Автосхемы


1-1128681705
LordOfRock
2005-10-07 14:41
2005.10.30
Программа в ХР-шном стиле


10-1106223619
uncle
2005-01-20 15:20
2005.10.30
body for IHTMLDocument2


14-1128867356
alexsis
2005-10-09 18:15
2005.10.30
Подскажите


14-1128266771
Некто
2005-10-02 19:26
2005.10.30
Тётьки с брашурами




   Наверх