|
Delphi2010 日付カレンダー(MonthCalendar) 2010/10/11 |
前回は[Win32]内の「DateTimePicker」(日付時刻入力)について見ましたので、今回は同じく[Win32]内の「MonthCalendar」(日付カレンダー)について見てみます。日付カレンダーは Delphi6 にもあります。
日付カレンダーを配置してみます。1つ目ですので Nameプロパティは「MonthCalendar1」となります。
試しにこのまま保存・コンパイル(再構築)・実行を行ってみます。
動きとしては、前回の「日付時刻入力(DateTimePicker)」のカレンダー表示部分と同じ感じですね。
それでは、<オブジェクトプロパティ>を見ていきます。
Alignプロパティはもういつもの定番・お約束ですね。日付カレンダーを画面の4辺/全てにくっつける、或いは、何もしない(alNone)を指定しますが、カレンダーそのものの大きさは固定のようですので、空白部が付きセンタリングされて表示されます。
AutoSizeプロパティは、Trueにすると(デフォルトは「False」)日付カレンダーの上下左右の空白部をカットします。<フォームデザイナ>で日付カレンダーの大きさをいじった後にその空白部を除去したい場合、一旦 True にして、False に戻す、という作業をしたりすることも。
CalColorsプロパティは、表示する日付カレンダーの各所の色指定を行います、という事になっていますが、指定しても色は何も変わらないようです。
Dateプロパティは、表示する日付カレンダーでマークをつける日付を指定します。何も指定しない、という事は出来ないようです。<オブジェクトインスペクタ>にて値を消そうとすると、「1899/12/30」となってしまうようです。表示される「今日の日付」とは異なるようです。おそらくはこれが、利用者がマウス等で選択する日付を指し示すという事になるのでしょう。
Fontプロパティは、日付カレンダーで表示される文字のフォントを指定出来そうな感じがするかもしれませんが、指定しても意味はないようです。という以前に、指定すると<フォームデザイナ>での日付カレンダーの表示が乱れてしまうようですので、何もいじらないようにした方がいいでしょう。実行時の画面は大丈夫のようですし、一旦プロジェクトを閉じて、再度、プロジェクトを開くと元に戻るようです。また、MultiSelectプロパティを一旦 True にして、False に戻すことでも元に戻るようです。そのような画面の書き直しをするプロパティは他にあるかもしれません。
このようになってしまう・・・
MinDateプロパティ(最小日付)、MaxDateプロパティ(最大日付)は、Dateプロパティで日付指定を行う事が出来る範囲を指示します。何も入れない場合には、入力範囲指示は行いません。日付カレンダーはこれに従って制約が掛かります。
なお、日付時刻入力コンポーネントとは異なり、指定した日付=Dateプロパティ値が、MinDateプロパティ値と同じ場合でも、例外が発生するという事はありません。ただ、MaxDateプロパティ値を解除するため<オブジェクトインスペクタ>でこの欄を空状態にしても、<フォームデザイナ>での日付カレンダーは変化しないようです。この場合は一旦プロジェクトを閉じて、再度、プロジェクトを開く、或いは、MultiSelectプロパティを一旦 True にして、False に戻せば良いようです
MultiSelectプロパティを「True」にすると(デフォルトは「False」)、日付指定で範囲選択を行う事が出来るようになります。マウスドラッグするか、或いは、[Shift]キーを押しながらマウスで選択を行います。この日付カレンダーにフォーカスがある場合には、矢印キーで選択する事も出来ます(TabStopプロパティはデフォルトで「False」となっていますので注意)。この場合、MaxSelectRangeプロパティで選択できる最大日数を指定します(デフォルトは「31」 「0」入力等は出来ません)。
MultiSelectプロパティを「True」にした場合、マウスで範囲指定した結果は、範囲開始日付=Dateプロパティ値、範囲終了日付=EndDateプロパティ値、となるようです。
ShowTodayプロパティを「False」にすると(デフォルトは「True」)、日付カレンダー下部の「今日:」の日付が表示されなくなります。
ShowTodayCircleプロパティを「False」にすると(デフォルトは「True」)、日付カレンダーで今日の日付を示す青色の四角マークが表示されなくなります。(Circle=円というのは、以前のバージョンのDelphiでの表示が円だったから、でしょう)
FirstDayOfWeekプロパティは、読んで字のごとく、週の最初の曜日を指定します。デフォルトは「dowLocaleDefault」で、日本設定では、日曜日が最初になっています。「dowLocaleDefault」「dowSunday」「dowMonday」「dowTuesday」「dowWednesday」「dowThursday」「dowFriday」「dowSaturday」のうちから選択出来ます。下記は、木曜日「dowThursday」にした例です。
WeekNumbersプロパティを「True」にすると(デフォルトは「False」)、日付カレンダーに年初からの週の数を表示する事が出来るようになります。
こんな感じでしょうか?
そのほか、<オブジェクトインスペクタ>をざっと見る限りにおいては、それ以外については、他のコンポーネントと同様ですので省略します。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/10/10
2010/10/11
▼2010/10/17
シェアウェア
Script!World
データベース
|