Q2:@カレンダーコンポーネントとは?A日付入力フィールドに日付時刻等を入力した際の動作の違い。
Q1-1:
カレンダーコンポーネントとの絡みが良く分からない。そもそもカレンダーコンポーネントとは?
サンプルのカレンダーの”現在日時”の入力日付フィールドに日付「2007/06/29」と入力し、フォーカスを抜けたところ前の入力状態に戻るが、「2007/06/29
00:00:00」と入力し、 フォーカスを抜けると「2007/06/29 0:00:00」ときちんと日付が表示される。
しかし、自分で作成した入力日付フィールド(ただ画面上に貼り付けただけ)に 「2007/06/29」と入力し、フォーカスを抜けるときちんと日付が表示されるが、 「2007/06/29 0:00:00」と入力すると前の入力状態に戻る。
両者とも”フォーカスを抜ける”イベントを発生させる処理を行っていないにもかかわらず、何故サンプルと自作の入力日付フィールドの動作に違いがあるのか分からない。
上記の、解決を図りたい。
A1-1:
カレンダーコンポーネントとは、MZ Platformで用いられる日付型のオブジェクトと、年、月、日、時 などの整数値との間での変換を行うためコンポーネントです。
数値による日付や時刻の設定や、指定されたフォーマットでの取得、経過時間の計算等、様々な機能がございます。
あくまで処理部品でして、値の表示の機能は有りません。
一方、日付入力フィールドは、画面表示または入力するための部品です。上述のような日付けに関する処理機能は有りません。
日付入力フィールドに日付時刻等を入力した際の動作の違いは、表示モードの違いが原因です。
サンプルのカレンダーでは、表示モードが「日付と時間」になっており、ビルダーに追加したばかりのフィールドは「日付」のみの設定になっております。
表示モードの変更は、3つの方法があります。
(1)メソッドにより設定する方法
メソッド「表示モードを設定する(int)」を用いて設定できます。
引数の数値は0,1,2の何れかで、次の意味があります。
0:日付+時間
1:日付のみ
2:時間のみ
(2)ビルダーによる設定1
ビルダー画面左下の2番目のボタン「実行(設定可)」を押してアプリケーションを実行しますと、実行しながら、画面構成部品の様々な属性値を設定できます。
「実行(設定可)」でアプリケーションを実行し、表示された日付入力フィールド上でマウス右クリックしますと、 メニューが表示されます。
その中の「表示モード」を選択しますと、表示モードを変更できます。
(3)ビルダーによる設定2
コンポーネント属性情報設定画面で設定できます。
ビルダー上でコンポーネントの四角内をダブルクリックしますと、属性情報設定画面になります。
そのなかの上から4つ目の「Mode」の値を変更します。
設定する数値は(1)と同じです。
備考:「カレンダー」の「Q&A1」にも掲載。