TJvMonthCalendar2はJVCLのコンポーネントです。
指定日を太字で表示するなど、標準コンポーネントのTMonthCalendarにはない機能があります。
■Boldプロパティ
指定した日付が太字かどうかを表します。
JvMonthCalendar21->BoldDays->Add("201207=11"); //2012年7月11日は太字
bool bold1 = JvMonthCalendar21->Bold[2012][7][10]; //=> false
bool bold2 = JvMonthCalendar21->Bold[2012][7][11]; //=> true
JvMonthCalendar21->Bold[2012][7][12] = true; //2012年7月12日は太字
bool bold3 = JvMonthCalendar21->Bold[2012][7][12]; //=> true
■BoldDaysプロパティ
太字で表示する日付を設定します。
次の2種類の書式を使用できます。
- 0000mm=daylist
毎年mm月のdaylist日を太字にします。
-
yyyymm=daylist
yyyy年mm月のdaylist日を太字にします。
daylistはカンマ区切りで日にちを並べます。
例
//2012年7月の1日,11日,21日を太字にする
JvMonthCalendar21->BoldDays->Add("201207=1,11,21");
//毎年10月の10日,20日,30日を太字にする
JvMonthCalendar21->BoldDays->Add("000010=10,20,30");
■CircleTodayプロパティ
trueのときは当日の日付を囲みます。
■Colorsプロパティ
コントロールの各部品の色を設定します。
■DateFirstプロパティ、DateLastプロパティ
MultiSelectプロパティがtrueのときは選択されている期間の開始と終了の日付を示します。
JvMonthCalendar21->MultiSelect = true;
JvMonthCalendar21->DateFirst = TDateTime(2012, 8, 10);
JvMonthCalendar21->DateLast = TDateTime(2012, 8, 15);
MultiSelectプロパティがfalseのときはDateFirstプロパティは選択されている日付を示します。
■DateMaxプロパティ、DateMinプロパティ
選択できる期間を示します。
0のときは制限はありません。
JvMonthCalendar21->DateMin = TDateTime(2012, 8, 10);
JvMonthCalendar21->DateMax = TDateTime(2012, 8, 15);
■Daysプロパティ
指定した年月の太字の日にちをカンマ区切り文字列で示します。
//2012年7月の1日,11日,21日を太字にする
JvMonthCalendar21->Days[2012][7] = "1,11,21,31";
//2012年7月の太字に日にちを取得する
UnicodeString days = JvMonthCalendar21->Days[2012][7];
//=> days = "1,11,21"
■FirstDayOfWeekプロパティ
週の始まりの曜日をTJvMonthCalWeekDay型で示します。
JvMonthCalendar21->FirstDayOfWeek = mcTuesday;
■ShowTodayプロパティ
trueのときはコントロールの下部に当日の日付を表示します。
■WeekNumbersプロパティ
trueのときは週数を表示します。
■OnGetDayStateイベント
コントロールが日にちの状態を取得する時に呼ばれます。
引数
- Date
要求された最初の日にち。通常は月の初めの日。 -
Count
要求された月の数。 -
DayStateArray
日付の状態を示すTMonthDayStateの配列
たとえば2012年7月を表示する時は、2012年6月~2012年8月までの情報が必要になるので、
Date=2012/06/01
Count=3
DayStateArray[0]=6月の太字の日にちのTMonthDayState
DayStateArray[1]=7月の太字の日にちのTMonthDayState
DayStateArray[2]=8月の太字の日にちのTMonthDayState
となります。
TMonthDayStateはDayStatesToString関数で、カンマ区切りの文字列に変換できます。
var
S: String;
begin
S := DayStatesToString(DayStateArray[0]); //=> 1,11,21