Главная страница
    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.46 MB
Время: 0.036 c
14-1128867356
alexsis
2005-10-09 18:15
2005.10.30
Подскажите


1-1128396828
SHVictor
2005-10-04 07:33
2005.10.30
Редактирование поля в StringGrid


2-1128608160
Кефир87
2005-10-06 18:16
2005.10.30
Трассировка DLL файлов


4-1124892466
Shopot
2005-08-24 18:07
2005.10.30
Как правильно работать с Com портом используя события.


14-1128803817
raiks
2005-10-09 00:36
2005.10.30
Access Violation при использовании StrUpper





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский