RAD Studio
ContentsIndex
PreviousUpNext
Excluding Blank Cells

As the calendar is written, the user can select a blank cell, but the date does not change. It makes sense, then, to disallow selection of the blank cells. 

To control whether a given cell is selectable, override the SelectCell method of the grid. 

SelectCell is a function that takes a column and row as parameters, and returns a Boolean value indicating whether the specified cell is selectable. 

You can override SelectCell to return False if the cell does not contain a valid date:

function TSampleCalendar.SelectCell(ACol, ARow: Longint): Boolean;
begin
  if DayNum(ACol, ARow) = -1 then Result := False            { -1 indicates invalid date }
  else Result := inherited SelectCell(ACol, ARow);      { otherwise, use inherited value }
end;

 

bool __fastcall TSampleCalendar::SelectCell(int ACol, int ARow)
{
  if (DayNum(ACol,ARow) == -1) return false;          // -1 indicates invalid date
  else return TCustomGrid::SelectCell(ACol, ARow);    // otherwise, use inherited value
}

Now if the user clicks a blank cell or tries to move to one with an arrow key, the calendar leaves the current cell selected.

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!