Exclusion des cellules vides

De RAD Studio
Aller à : navigation, rechercher

Remonter à Navigation de jour en jour

Tel qu'il est actuellement, le calendrier déplace la sélection vers une cellule vide sans changer la date. Il devient intéressant d'empêcher la sélection des cellules vides.

Pour déterminer si une cellule est sélectionnable, vous devez redéfinir la méthode SelectCell de la grille.

SelectCell est une fonction qui accepte deux paramètres ligne et colonne et qui renvoie une valeur booléenne indiquant si la cellule spécifiée est sélectionnable.

Vous pouvez redéfinir SelectCell pour qu'elle renvoie False si la cellule ne contient pas une date valide :



 function TSampleCalendar.SelectCell(ACol, ARow: Longint): Boolean;
 begin
   if DayNum(ACol, ARow) = -1 then Result := False            { -1 indique une date incorrecte }
   else Result := inherited SelectCell(ACol, ARow);      { sinon, utilise la valeur héritée }
 end;



 bool __fastcall TSampleCalendar::SelectCell(int ACol, int ARow)
 {
   if (DayNum(ACol,ARow) == -1) return false;          // -1 indique une date incorrecte
   else return TCustomGrid::SelectCell(ACol, ARow);    // sinon, utilise la valeur héritée
 }



Désormais, si l'utilisateur clique sur une cellule vide ou tente de s'y déplacer à l'aide des touches de direction, le calendrier ne modifie pas la sélection en cours.