首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

TCalendar年历可以让某些日期自定义填充颜色吗

2013-09-07 
TCalendar日历可以让某些日期自定义填充颜色吗?就是软件的工作日志查看,在日历上想有有操作日志的日期标出

TCalendar日历可以让某些日期自定义填充颜色吗?
就是软件的工作日志查看,在日历上想有有操作日志的日期标出来.
[解决办法]
刚才看了看,原来TCCalendar是继承自TCustomGrid,这样就好办了:

class TCrnCalendar: public TCCalendar
{
public:
    void __fastcall DrawCell(int ACol, int ARow, const TRect &ARect,
            TGridDrawState AState)
    {
        // 假设第4行第3列需要变色
        if (ACol == 2 && ARow == 3)
        {
            Canvas->Brush->Color = clSkyBlue;
            Canvas->Font->Color = clRed;
            Canvas->Font->Style = Canvas->Font->Style << fsBold;
        }
        else
        {
            Canvas->Brush->Color = clWhite;
            Canvas->Font->Color = clBlack;
            Canvas->Font->Style = Canvas->Font->Style >> fsBold;
        }

        TCCalendar::DrawCell(ACol, ARow, ARect, AState);
    }
    __fastcall virtual TCrnCalendar(TComponent *AOwner): TCCalendar(AOwner)
    {}
};


void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TCrnCalendar *cc = new TCrnCalendar(this);
    cc->Parent = this;
    cc->Left = 100;
    cc->Top = 100;

    cc->Show();
}

------解决方案--------------------


TCCalendar这个组件旧一些,不过两者都是继承自TCustomGrid,所以,按我在二楼的方法略改一下就行了。

热点排行