


 
 
 
 
 
 
 |
Delphi2010 日付時刻入力(DateTimePicker) 2010/10/10 |
前回は[Win32]内の「Animate」(アニメーション)について見ましたので、今回は同じく[Win32]内の「DateTimePicker」(日付時刻入力)について見てみます。日付時刻入力は Delphi6 にもあります。
まず最初に、「テスト16」(フォルダ「016」)として新規作成しておきます。日付時刻入力を配置してみます。1つ目ですので Nameプロパティは「DateTimePicker1」となります。
私自身、このコンポーネントを使った事がありませんので、試しにこのまま保存・コンパイル(再構築)・実行を行ってみます。
この状態で、数値入力での年の入力、矢印キー([↑][↓])での年の変更が出来ますね。矢印キー([←][→])で月・日の欄に移動できます。マウスでも勿論移動可能。変な入力は出来ない様子。「0」入力は出来てしまいますが次の瞬間に変更されてますね。
日付時刻入力コントロールの右端にあるアイコンをクリックするとカレンダーが表示されるようです。

↓

ここで日付をクリックして指定する事が可能。このカレンダーの上部の年・月をクリックすると・・・

↓

面白い動きをしますね〜。
<オブジェクトインスペクタ>にて、DateModeプロパティが「dmComboBox」(デフォルト)になっている場合には、上記のようなカレンダーが表示されるようになりますが、これを「dmUpDown」にすると、カレンダー表示は行われず、UpDownコンポーネントが貼り付いたような感じになります。
でもやはり、カレンダーが表示されたほうが断然面白いですね。
DateFormatプロパティを「dfShort」(デフォルト)から「dfLong」に変更すると、省略表示の「○○○○/○○/○○」形式ではなく、「○○○○年○○月○○日」と表示出来るようになります。
それでは、時刻を入力する際には、どうするのでしょう?
<オブジェクトインスペクタ>にて、Kindプロパティを「dtkDate」(日付入力)から「dtkTime」(時刻入力)にすれば良いようです。
DateModeプロパティの内容に関わらず、「dmUpDown」を指定した状態と同じように表示されます。ですが時刻入力時はカレンダーは無関係なので当然でしょうか(時計の絵が出ると一瞬、面白いかも?などと思ってしまいましたが)。
ここで、時刻が自動的に動かない事が分かります。日付もおそらく自動的には動かないでしょう。あくまでも、日付時刻を手で入力するためのコンポーネントであって、自動的に変更したい場合には、Timerコンポーネント等を使って、Dateプロパティに現在の日付を、Timeプロパティに現在の時刻を入れるようプログラミングする、という事になるのでしょう。
次に、日付・時刻を同時に入力する際には、どうするのでしょう?
Kindプロパティは「dtkDate」(日付入力)又は「dtkTime」(時刻入力)しかなく、同時入力というのはありません。ですのでKindプロパティは「dtkTime」にします。そのため、DateModeプロパティをデフォルトの「dmComboBox」にしてもカレンダー表示は出来なくなってしまいます。DateFormatプロパティをデフォルトの「dfShort」にしておいて、Formatプロパティを「yyyy/MM/dd HH:mm:ss」のように入力します。そうすれば下記のようになります。
Kindプロパティを「dtkDate」(日付入力)にしてカレンダー表示出来るのは可能なのですが、残念ながら、時刻欄での数値入力・数値指定が出来ない様子です。
それでは、<オブジェクトプロパティ>を見ていきます。
Alignプロパティはもういつもの定番・お約束ですね。ただ、入力する文字の長さはそれほどありませんから普通はデフォルトの「alNone」のままにするのではないかと思われますが・・・
CalAlignmentプロパティは、表示するカレンダーの位置を指定します。

dtaLeft
左合わせ(デフォルト) |

dtaRight
右合わせ |
CalColorsプロパティは、表示するカレンダーの各所の色指定を行います、という事になっていますが、指定しても色は何も変わらないようです。
Checkedプロパティは、ShowCheckboxプロパティを「True」にして(デフォルトは「False」)先頭にチェック・オン/オフできるようにした状態で、そのチェック状態を指定・取得します。
MinDateプロパティ(最小日付)、MaxDateプロパティ(最大日付)は、日付入力を行う事が出来る範囲を指示します。何も入れない場合には、入力範囲指示は行いません。カレンダー表示もこれに従って制約が掛かります。
なお、入力した日付=Dateプロパティ値が、MinDateプロパティ値と同じ場合、Delphi2010では例外が発生して入力出来ない状態になるようです。ですのでMinDateプロパティ値は入力可能開始日の前日にしておく必要がありそうです。
MinDateプロパティ=「2010/10/05」
MaxDateプロパティ=「2010/10/25」
(この場合、2010/10/05を指定すると例外が発生する場合があります)
それ以外については、他のコンポーネントと同様ですので省略します。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/10/09
2010/10/10
▼2010/10/11
シェアウェア
Script!World
データベース
|