現在の日付の選択
グリッドのカスタマイズ:インデックス への移動
カレンダーの各セルに日付が表示されるようになりました。そこで,現在の日付のセルが常に選択され,強調表示されるようにします。デフォルトでは,左上端のセルが選択されていますが,選択するセルは Row プロパティと Column プロパティで指定できます。常に適切なセルが選択されているようにするには,カレンダーを作成したときと,日付が変更されたときの両方の場合に 2 つのプロパティを設定します。
現在の日付のセルを選択するには,UpdateCalendar メソッドが Refresh を呼び出す前に Row と Column を設定します。
procedure TSampleCalendar.UpdateCalendar;
begin
if FDate <> 0 then
begin
. { FMonthOffset を設定する既存の文 }
.
.
Row := (ADay - FMonthOffset) div 7 + 1;
Col := (ADay - FMonthOffset) mod 7;
end;
Refresh; { 元からある文 }
end;
void __fastcall TSampleCalendar::UpdateCalendar(void)
{
unsigned short AYear, AMonth, ADay;
TDateTime FirstDate;
if ((int) FDate != 0)
{
.
.
. // FMonthOffset を設定する既存の文
Row = (ADay - FMonthOffset) / 7 + 1;
Col = (ADay - FMonthOffset) % 7;
}
Refresh(); // 元からある文
}
この手続きでは,コード化された日付から抽出しておいた ADay 変数を再利用しています。