月と年の移動

提供: RAD Studio
移動先: 案内検索

グリッドのカスタマイズ:インデックス への移動

プロパティはコンポーネントの操作に便利で、特に設計時に効果を発揮します。しかしときには、非常に一般的または自然で、複数のプロパティを扱うことが多いタイプの操作については、それらを処理するためのメソッドを用意する意義があります。そのような自然な処理の 1 例が、カレンダーの「翌月」機能です。月を1月に戻し、年を1つ繰り上げる、といった処理は単純ですが、コンポーネントを使用する開発者にとっては、非常に便利なものです。

メソッドに汎用的な操作をカプセル化することの、唯一の難点は、メソッドが実行時にしか使用できないことです。しかし、このような操作が一般に面倒になるのは、それが繰り返し行われる場合のみであり、それは設計時にはめったにありません。

カレンダーに対して、次の 4 つのメソッドを追加して、次または前の月または年へ移動できるようにしましょう。これらメソッドはそれぞれ、IncMonth 関数を若干異なった形で使用して、年月を増減させ、CalendarDate の値をインクリメントまたはデクリメントします。

 
  
   procedure TCalendar.NextMonth;
   begin
     CalendarDate := IncMonth(CalendarDate, 1);
   end;
   procedure TCalendar.PrevMonth;
   begin
     CalendarDate := IncMonth(CalendarDate, -1);
   end;
   procedure TCalendar.NextYear;
   begin
     CalendarDate := IncMonth(CalendarDate, 12);
   end;
   procedure TCalendar.PrevYear;
   begin
     CalendarDate := DecodeDate(IncMonth(CalendarDate, -12);
   end;
 
  
   void __fastcall TSampleCalendar::NextMonth()
   {
     CalendarDate = IncMonth(CalendarDate, 1);
   }
   void __fastcall TSampleCalendar::PrevMonth()
   {
     CalendarDate = IncMonth(CalendarDate, -1);
   }
   void __fastcall TSampleCalendar::NextYear()
   {
     CalendarDate = IncMonth(CalendarDate, 12);
   }
   void __fastcall TSampleCalendar::PrevYear()
   {
     CalendarDate = IncMonth(CalendarDate, -12);
   }

新しいメソッドの宣言を、クラス宣言に追加するのを忘れないでください。

これで、カレンダー コンポーネントを使用するアプリケーションを作成した際、年月の参照機能を、観点に実装できるようになります。

関連項目

コード サンプル