Bewegung zu leeren Zellen verhindern

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Durch die Tage navigieren

Im gegenwärtigen Zustand des Kalenders kann der Benutzer eine leere Zelle markieren, ohne dass sich das Datum ändert. Es wäre also sinnvoll, die Markierung leerer Zellen zu unterbinden.

Durch Überschreiben der Methode SelectCell des Gitters können Sie festlegen, ob eine Zelle markiert werden kann.

Die Funktion SelectCell erwartet eine Spalte und eine Zeile als Parameter und gibt einen Booleschen Wert zurück, der angibt, ob die Zelle markiert werden kann.

Sie können die Funktion so überschreiben, dass sie False zurückgibt, wenn die Zelle kein gültiges Datum enthält:

function TSampleCalendar.SelectCell(ACol, ARow: Longint): Boolean;
begin
  if DayNum(ACol, ARow) = -1 then Result := False      { -1 verweist auf ungültiges Datum }
  else Result := inherited SelectCell(ACol, ARow);      { Ansonsten geerbte Funktion aufrufen }
end;
bool __fastcall TSampleCalendar::SelectCell(int ACol, int ARow)
{
    if (DayNum(ACol,ARow) == -1) return false;          // -1 signalisiert ungültiges Datum
  else return TCustomGrid::SelectCell(ACol, ARow);  // Andernfalls geerbten Wert verwenden
}

Wenn der Benutzer nun auf eine leere Zelle klickt oder versucht, mit einer Pfeiltaste in eine leere Zelle zu gelangen, bleibt die aktuelle Zelle markiert.

Siehe auch