このドキュメントでは、次のトピックについて説明します。
日付/時刻ピッカー(DTP)コントロールは、ユーザーによる日付または時刻情報の入力を簡素化するために使用します。 DTP コントロールは、時刻入力に対しては、スピンコントロールに似た外観と動作をします。任意の日付入力に対しては、スピンコントロールまたは選択ボックスのいずれかに似た外観と動作をします。 日付入力の場合、下矢印が表示されているボタンをユーザーがクリックすると、従来のリストボックスではなく、カレンダーが表示されます。
デフォルトでは、日付/時刻の情報は、現在の地域の設定に定義されている日付/時刻のフォーマットに従って表示されます。 Windows には長いフォーマットと短いフォーマットの 2 つの代替日付フォーマットがあり(両方ともユーザーが変更可能)、また短い日付フォーマットには世紀の情報が含まれないことがあるため、3
つの STYLE
フラグの 1 つにより、使用される標準の日付フォーマットが決定されます。 これらのフォーマットは以下のとおりです(相互排他的)。
[短い日付 (s)]。現在の地域の設定に短い日付フォーマットを使用することを意味します。
[世紀日付 (c)]。現在の地域の設定に短い日付フォーマットを使用することを意味しますが、世紀情報が含まれていない場合は、世紀情報を提供するように拡張されます。 多くの場合、短い日付フォーマットには世紀情報がすでに含まれています。この場合、このスタイルにより日付の外観が変わることはありません。
[長い日付(l)]。現在の地域の設定に長い日付フォーマットを使用することを意味します。
補足: [時刻(t)]スタイルフラグは、コントロールで(日付ではなく)時刻情報を表示することを示すために用意されています。
これらの標準のフォーマットが十分でない場合は、EDIT-MASK
属性を使用して、これらのフォーマットよりも優先させるカスタムフォーマット文字列を指定することができます。 ただし、フォーマット文字列の指定子は、Natural 内の他の場所にある編集マスクに使用された指定子には対応していません。 次のテーブルに、使用可能な指定子とその意味を示します。
指定子 | 説明 |
---|---|
d | 1 桁または 2 桁の日付。 |
dd | 2 桁の日付。 1 桁の日付の場合、先頭に 0 が付けられます。 |
ddd | 3 文字の週日の略記。 |
dddd | 完全な週日名。 |
h | 12 時間フォーマットの 1 桁または 2 桁の時間。 |
hh | 12 時間フォーマットの 2 桁の時間。 1 桁の値の場合、先頭に 0 が付けられます。 |
H | 24 時間フォーマットの 1 桁または 2 桁の時間。 |
HH | 24 時間フォーマットの 2 桁の時間。 1 桁の値の場合、先頭に 0 が付けられます。 |
m | 1 桁または 2 桁の分。 |
mm | 2 桁の分。 1 桁の値の場合、先頭に 0 が付けられます。 |
s | 1 桁または 2 桁の秒。 |
ss | 2 桁の秒。 1 桁の値の場合、先頭に 0 が付けられます。 |
M | 1 桁または 2 桁の月番号。 |
MM | 2 桁の月番号。 1 桁の値の場合、先頭に 0 が付けられます。 |
MMM | 3 文字の月の略記。 |
MMMM | 完全な月名。 |
t | AM/PM 略記の 1 文字(つまり、AM は "A" と表示される)。 |
tt | AM/PM 略記の 2 文字(つまり、AM は "AM" と表示される)。 |
yy | 年の下 2 桁(つまり、2005 年は "05" と表示される)。 |
yyyy | 完全な年(つまり、2005 年は "2005" と表示される)。 |
また、引用符で囲まれた文字は、指定したとおりに表示されます。 引用符で囲まれた引用符を指定する場合は、2 つの一重引用符を連続して使用する必要があります。 スペースおよび句読点の記号(コンマなど)は、引用符で囲む必要はありません。
例えば、"John's birthday is Friday, December 31, 1969" という文字列を表示するには、DTP コントロールの EDIT-MASK
属性を "John''s birthday is' dddd, MMMM d, yyyy" に設定します。
DTP コントロールには、指定された情報を修正するための方法がいくつかあります。
ユーザーが、数値情報(日付など)を直接入力します。
ユーザーが、選択されたフィールド(日付、月名など)の値を、+ キーまたは - キーを使用して、それぞれ増やしたり減らしたりします。
DTP コントロールのスタイルが[時刻 (t)]または[上下 (u)]のいずれかの場合、ユーザーが、必要なフィールドを選択し、上下("スピン")コントロールを使用して数値を増やしたり減らしたりします。
DTP コントロールでカレンダーが使用されている場合、ユーザーが、下向きの矢印を押してカレンダーを開き、必要な日付に移動します。 上述した方法とは異なり、この方法ではすべての日付フィールドが同時に更新されます。
プログラム的に、必要な日付または時刻で TIME
属性を更新します。
例えば、DTP コントロールで日付または時刻を現在の日付または時刻に設定するには、次の割り当てを使用します。
#DTP-1.TIME := *DATX
または
#DTP-1.TIME := *TIMX
それぞれ、#DTP-1
は DTP コントロールのハンドルであるとみなされます。
DTP コントロールでは、日付または時刻のコンポーネントの編集しか許可されませんが、コントロールのスタイルに応じて、日付および時刻の両方の情報を保存します。
DTP コントロールの日付または時刻がユーザーによって変更されると、そのコントロールの CHANGE
イベントが発生します(抑制されていない場合)。 DTP コントロールがプログラムによって変更された場合、このイベントは発生しません。
DTP コントロールに[値なし"" を許可 (n)]のスタイルが指定されている場合、コントロールにチェックボックスが表示されます。 このチェックボックスがオンになっていない場合、そのコントロールに関連付けられた日付または時刻はないと解釈されます。
アプリケーションは、コントロールの CHECKED
属性をクエリすることで、この状態をテストすることができます。 また、CHECKED
属性を UNCHECKED
に戻すことで、"値なし"の状態にコントロールを戻すこともできます。 ただし、CHECKED
属性を明示的に CHECKED
に設定することはできません。これは、日付または時刻がコントロールに適用されるたびに、暗黙的に行われるためです。 さらに、CHECKED
属性は、[値なし"" を許可 (n)]スタイルを使用しない場合、DTP コントロールにまったく設定できません。
DTP コントロールと関連してカレンダー(存在する場合)が使用するカラーおよびフォントは、それぞれ SET-AUX-COLOR
アクションおよび SET-AUX-FONT
アクションを使用して変更できます。