Форум: "Компоненты";
Текущий архив: 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