2012-08-01

【Delphi】TCalendar 應用, 特定日期顯示特定顏色

Form 上放一個 Calendar 元件(在 Samples 分頁籤內), 一個 button

F12 切換到程式碼編輯模式


 
type
    TCalendar = class(Calendar.TCalendar)
    private
        // 定義一個 2 維陣列記錄日曆內的每個 cell 是否要顯示特定顏色
        fSel : array[0..6,0..5]of Boolean;   
    procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
    end;
 


重新宣告 TCalendar, 繼承自 Calendar.TCalendar, 並 override(覆寫) DrawCell procedure


 
{$R *.dfm}

procedure TCalendar.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
begin
    if fSel[ACol,ARow] then
        Canvas.Brush.Color := clRed;
    Inherited;
end;
 



button1OnClick 事件裡寫入要變色的 cell

 
procedure TForm1.Button1Click(Sender: TObject);
begin
    calendar1.fSel[1,1] := true;
    calendar1.fSel[2,2] := true;
    calendar1.fSel[3,3] := true;
    calendar1.fSel[4,4] := true;
    calendar1.Refresh;
end;
 


沒有留言:

張貼留言