バージョン 6.3.3
 —  プログラミングガイド  —

スピンコントロールの操作

このドキュメントでは、次のトピックについて説明します。


はじめに

スピンコントロールは、"アップダウン" コントロールと呼ばれる上下対になった矢印ボタンと、"バディ" コントロールと呼ばれる、任意で関連付けられた入力フィールドコントロールによって構成されます。 スピンコントロールには整数範囲と現在位置が関連付けられています。 バディコントロール(存在する場合)には、現在位置に関連付けられている内容が表示されます。 現在位置は、矢印ボタンや↑キーおよび↓キーを使用したり、バディ入力フィールド(使用可能かつ変更可能な場合)に直接値を入力したりすることによって、変更できます。

Top of page

アップダウンコントロール

アップダウンコントロールを使用すると、スピンコントロールの整数範囲を明示的にスクロールできます。 アップダウンコントロールのボタンは、↑キーおよび↓キーを使用すると暗黙的に押されます。 ボタンまたはキーを押し続けると、値が連続してインクリメントまたはデクリメントされます。コントロールの[折り返し(w)]スタイルが設定されている場合、範囲の上限または下限に到達すると、反対側の端の値がサイクリックに表示されます。 最初のインクリメント数またはデクリメント数は 1 ですが、数秒間続くとこの値は増加します。 SET-ACCELERATION アクションでは、この加速を無効にしたり、変更したりできます。

コントロールの範囲は、MIN 属性および MAX 属性を設定することによって定義できます。 コントロールの範囲内の現在位置は、POSITION 属性値を設定またはクエリすることによって、プログラムで設定したり取得したりできます。

現在位置がユーザーによって変更されると、コントロールの CHANGE イベントが発生します(抑制されていない場合)。 コントロールの値がプログラムによって変更された場合は、このイベントは発生しません。 代わりに、バディ入力フィールドコントロールが存在する場合、バディコントロールの CHANGE イベント を使用できます。

Top of page

バディコントロール

コントロールの[左に配置(l)]または[右に配置(r)]の各スタイルフラグを設定すると、バディコントロールと呼ばれる入力フィールドがスピンコントロールに組み込まれます。バディコントロールは、スタイルフラグの設定に応じて、アップダウンコントロールの左または右に表示されます(配置は、バディコントロールではなくアップダウンコントロールに対する位置が基準になります)。

バディコントロールはスピンコントロールの子で、標準の Natural 入力フィールドコントロールとして表示されます。 したがって、Natural プログラマは、単独の入力フィールドコントロールで使用できるすべての機能にアクセスできます。 例えば、バディコントロールは、数字のみを受け付けるようにしたり、変更不可能にしたりできます。

スピンコントロールの[バディの設定(s)]スタイルが設定されている場合、アップダウンコントロールの現在位置が変更されると、その現在位置に合わせてバディコントロールが自動的に更新されます。 [バディの設定(s)]スタイルが設定されていない場合、スピンコントロールの CHANGE イベントに応じて、バディコントロールの内容を手動で更新する必要があります。

Top of page

日付/時刻のフォーマット

デフォルトでは、日付/時刻の情報は、現在の地域の設定に定義されている日付/時刻のフォーマットに従って表示されます。 Windows には長いフォーマットと短いフォーマットの 2 つの代替日付フォーマットがあり(両方ともユーザーが変更可能)、また短い日付フォーマットには世紀の情報が含まれないことがあるため、3 つの STYLE フラグの 1 つにより、使用される標準の日付フォーマットが決定されます。 これらのフォーマットは以下のとおりです(相互排他的)。

また、[時刻(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" に設定します。

Top of page

日付および時刻の入力

DTP コントロールには、指定された情報を修正するための方法がいくつかあります。

例えば、DTP コントロールで日付または時刻を現在の日付または時刻に設定するには、次の割り当てを使用します。

#DTP-1.TIME := *DATX

または

#DTP-1.TIME := *TIMX

それぞれ、#DTP-1 は DTP コントロールのハンドルであるとみなされます。

DTP コントロールでは、日付または時刻のコンポーネントの編集しか許可されませんが、コントロールのスタイルに応じて、日付および時刻の両方の情報を保存します。

Top of page

空値

DTP コントロールに[値なし"" を許可 (n)]のスタイルが指定されている場合、コントロールにチェックボックスが表示されます。 このチェックボックスがオンになっていない場合、そのコントロールに関連付けられた日付または時刻はないと解釈されます。 アプリケーションは、コントロールの CHECKED 属性をクエリすることで、この状態をテストすることができます。 また、CHECKED 属性を UNCHECKED に戻すことで、"値なし"の状態にコントロールを戻すこともできます。 ただし、CHECKED 属性を明示的に CHECKED に設定することはできません。これは、日付または時刻がコントロールに適用されるたびに、暗黙的に行われるためです。 さらに、CHECKED 属性は、[値なし"" を許可 (n)]スタイルを使用しない場合、DTP コントロールにまったく設定できません。

Top of page

カレンダーのカラーおよびフォント

DTP コントロールと関連してカレンダー(存在する場合)が使用するカラーおよびフォントは、それぞれ SET-AUX-COLOR アクションおよび SET-AUX-FONT アクションを使用して変更できます。

Top of page