Class TgCalendar (unit Cal)

Inherits from

TCustomGrid

Constructors


constructor Create(AOwner: TComponent);



Functions

destructor Destroy;

Initialize calendar defaults

procedure NextMonth;


procedure NextYear;


procedure PrevMonth;


procedure PrevYear;


procedure UpdateCalendar;


procedure BckClick (Sender: TObject);


procedure Change;


procedure ChangeMonth(Delta: Integer);

Given a value of 1 or -1, moves to Next or Prev month accordingly

procedure Click;


function DaysPerMonth(AYear, AMonth: Integer): Integer;


function DaysThisMonth: Integer;

leap-year Feb is special

procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);


procedure FBckClick (Sender: TObject);


procedure FFwdClick (Sender: TObject);


procedure FwdClick (Sender: TObject);


function IsLeapYear(AYear: Integer): Boolean;


function SelectCell(ACol, ARow: Longint): Boolean;

day names at tops of columns

procedure TodayClick (Sender: TObject);


procedure WMSize(var Message: TWMSize);

day of week for 1st of month

procedure AdjustButtonSize;


function GetCellText(ACol, ARow: Integer): string;

OldColor := Canvas.

function GetDateElement(Index: Integer): Integer;


procedure SetButtonImage( var sbRaw: TSpeedButton; ImgSpec: TBtnImage );


procedure SetDateElement(Index: Integer; Value: Integer);


procedure SeTgCalDate(Value: TDateTime);


procedure SetStartOfWeek(Value: TDayOfWeek);


function StoreCalendarDate: Boolean;


Properties

property About : TAboutCalendar


property Align :


property BorderStyle :


property Color :


property Ctl3D :


property Day : Integer


property Enabled :


property Font :


property GridLineWidth :


property Month : Integer


property ParentColor :


property ParentFont :


property ParentShowHint :


property ReadOnly : Boolean


property ShowHint :


property StartOfWeek : TDayOfWeek


property TabOrder :


property TabStop :


property UseCurrentDate : Boolean


property Visible :


property Year : Integer


property CalendarDate : TDateTime


property CellText : string


Events

event OnChange : TNotifyEvent


event OnClick :


event OnDblClick :


event OnDragDrop :


event OnDragOver :


event OnEndDrag :


event OnEnter :


event OnExit :


event OnKeyDown :


event OnKeyPress :


event OnKeyUp :


Variables

FAboutBox : TAboutCalendar;


FBckBtn : TSpeedButton;


FDate : TDateTime;


FFBckBtn : TSpeedButton;


FFFwdBtn : TSpeedButton;


FFwdBtn : TSpeedButton;


FMonthOffset : Integer;


FOnChange : TNotifyEvent;


FReadOnly : Boolean;


FStartOfWeek : TDayOfWeek;


FTodayBtn : TSpeedButton;


FUpdating : Boolean;


FUseCurrentDate : Boolean;



Constructors


constructor Create(AOwner: TComponent);


Functions


destructor Destroy;

Initialize calendar defaults


procedure NextMonth;


procedure NextYear;


procedure PrevMonth;


procedure PrevYear;


procedure UpdateCalendar;


procedure BckClick (Sender: TObject);


procedure Change;


procedure ChangeMonth(Delta: Integer);

Given a value of 1 or -1, moves to Next or Prev month accordingly


procedure Click;


function DaysPerMonth(AYear, AMonth: Integer): Integer;


function DaysThisMonth: Integer;

leap-year Feb is special


procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);


procedure FBckClick (Sender: TObject);


procedure FFwdClick (Sender: TObject);


procedure FwdClick (Sender: TObject);


function IsLeapYear(AYear: Integer): Boolean;


function SelectCell(ACol, ARow: Longint): Boolean;

day names at tops of columns


procedure TodayClick (Sender: TObject);


procedure WMSize(var Message: TWMSize);

day of week for 1st of month


procedure AdjustButtonSize;


function GetCellText(ACol, ARow: Integer): string;

OldColor := Canvas.Brush.Color; if ARow = (RowCount-1) then begin Canvas.Brush.Color := clBtnFace; Canvas.FillRect( ARect ); end;


function GetDateElement(Index: Integer): Integer;


procedure SetButtonImage( var sbRaw: TSpeedButton; ImgSpec: TBtnImage );


procedure SetDateElement(Index: Integer; Value: Integer);


procedure SeTgCalDate(Value: TDateTime);


procedure SetStartOfWeek(Value: TDayOfWeek);


function StoreCalendarDate: Boolean;


Properties


property About : TAboutCalendar


property Align :


property BorderStyle :


property Color :


property Ctl3D :


property Day : Integer


property Enabled :


property Font :


property GridLineWidth :


property Month : Integer


property ParentColor :


property ParentFont :


property ParentShowHint :


property ReadOnly : Boolean


property ShowHint :


property StartOfWeek : TDayOfWeek


property TabOrder :


property TabStop :


property UseCurrentDate : Boolean


property Visible :


property Year : Integer


property CalendarDate : TDateTime


property CellText : string


Events


event OnChange : TNotifyEvent


event OnClick :


event OnDblClick :


event OnDragDrop :


event OnDragOver :


event OnEndDrag :


event OnEnter :


event OnExit :


event OnKeyDown :


event OnKeyPress :


event OnKeyUp :


Variables


FAboutBox : TAboutCalendar;


FBckBtn : TSpeedButton;


FDate : TDateTime;


FFBckBtn : TSpeedButton;


FFFwdBtn : TSpeedButton;


FFwdBtn : TSpeedButton;


FMonthOffset : Integer;


FOnChange : TNotifyEvent;


FReadOnly : Boolean;


FStartOfWeek : TDayOfWeek;


FTodayBtn : TSpeedButton;


FUpdating : Boolean;


FUseCurrentDate : Boolean;