ページの先頭行へ戻る
WSMGR for Web V7.2 使用手引書L20

22.3.5 ダイアログ

ダイアログを使用することによって対話的なユーザインタフェースを簡単に作成できます。ダイアログには処理を選択するためのボタンやテキストを入力するエディットフィールドなどのアイテムが使用できます。


■座標

ダイアログは画面の左上隅を(0,0)で半角文字の幅と高さを1とする座標で指定します。また、アイテムはダイアログのタイトルバーや境界線を除いた作業領域の左上隅を(0,0)とする座標です。


■メッセージマップ

ダイアログが表示されると、事象によってダイアログまたはアイテムから様々なメッセージが生成されます。たとえばプッシュボタンをクリックすることによってボタンが選択されたことを知らせるClickメッセージを生成します。メッセージマップはそのメッセージをフィルタし、適切な処理にマッピングします。メッセージには次のようなメッセージがあります。

メッセージ

説明

Check

ラジオボタンまたはチェックボックスが選択状態になりました。

Click

プッシュボタンがクリックされました。

Close

ダイアログがクローズします。まだ画面に表示されています。

DoubleClick

ラジオボタンがダブルクリックされました(未サポート)。

Init

ダイアログがオープンします。画面には表示されていません。


■ダイアログテンプレート

ダイアログはダイアログテンプレート文によってその外観と動作を規定します。次のダイアログはログオンIDを入力するための1つのエディットフィールドと1つのボタンを持ちます。このダイアログがどのように定義されるのかを見てみます。

ダイアログテンプレートはダイアログの定義、アイテムの定義およびメッセージマップから構成されます。


まずDLGTEMPLATEを宣言してダイアログの名前を定義します。例では"logon"という名前を定義しています。このテンプレート名はダイアログを開始する関数Dialogでダイアログテンプレートを識別するために使われます。それぞれ違った名前を使用して複数のダイアログテンプレートを定義できます。

    DLGTEMPLATE(logon)

ダイアログテンプレートで最初に行うことはダイアログの外観を定義することです。この例ではTITLE文でタイトルバーに表示される文字列を設定し、XY文とSIZE文で位置と大きさを設定しています。位置を指定しない場合はデフォルト処理として画面の中央にセンタリングされます。

TITLE("ログオンIDを入力して下さい")
SIZE(45,11)

ダイアログ内の各アイテムはITEM文で定義します。このITEM文はアイテムの個数分だけ複数定義します。ITEM文でアイテムにテンプレート中で重ならない名前を付けます。
ITEM文の中でスタイル、位置、大きさを定義します。

ITEM(id)                  ; アイテム名
    STYLE(EDIT TABSTOP)   ; エディットフィールド、タブ有効
    XY(7, 5)              ; 位置
    SIZE(18, 1)           ; 大きさ
ENDITEM

最後にメッセージマップを記述します。メッセージマップの記述はフィルタするメッセージ名にOnをつけて表します。どのアイテムから生成されたメッセージかを識別したいときは引数にアイテム名を指定します。

OnInit:                         ; 初期化メッセージ
OnClick(ok):                    ; ボタンクリックメッセージ
PROC MAIN
  ; ダイアログテンプレート
  DLGTEMPLATE(logon)
    ;*******************************************;
    ; ダイアログの定義                     ;
    ;*******************************************;
    TITLE( "ログオンIDを入力して下さい" ); タイトルバーのテキスト
    SIZE(40, 7)                                    ; ダイアログの大きさ
    ;*******************************************;
    ; アイテムの定義                       ;
    ;*******************************************;
    ; エディットフィールドの定義
    ITEM(id)                                 ; アイテム名
          STYLE(EDIT TABSTOP)               ; エディットフィールド
          XY(1, 2)                          ; 位置
          SIZE(20, 1)                       ; 大きさ
    ENDITEM
    ; 了解ボタンの定義
    ITEM(ok)                                 ; アイテム名
          TEXT("了解")                     ; ボタンテキスト
          STYLE(DEFPUSHBUTTON TABSTOP)      ; デフォルトボタン
          XY(22, 2)                         ; 位置
          SIZE(12, 1)                       ; 大きさ
    ENDITEM
    ;*******************************************;
    ; メッセージマップ                     ;
    ;*******************************************;
    ; アイテム名"ok"(了解ボタン)が押された時の処理
    OnClick(ok):
          Type("LOGON TSS ")                ; テキストの入力
          Type(GetItemText(id))             ; idのテキストを入力
          Type("[ENTER]")                   ; 実行キーの入力
          EndDialog()                       ; ダイアログを終了
  ENDDLGTEMPLATE
  ; ダイアログを表示します。
  Dialog(logon)
ENDPROC

■ダイアログ文

説明

DLGDTEMPLATE

ダイアログテンプレートの開始を宣言します。

ENDDLGTEMPLATE

ダイアログテンプレートの終了を表します。

SIZE

ダイアログまたはアイテムの大きさを指定します。

STYLE

ダイアログアイテムのスタイルを指定します。

TEXT

アイテムのテキストを指定します。

TITLE

タイトルバーのテキストを指定します。

XY

ダイアログまたはアイテムの位置を指定します。

OnXxxxxx:

メッセージをフィルタします。


SIZE

ダイアログ、アイテムの大きさの指定

ダイアログまたはアイテムの大きさを指定します。大きさは半角文字の高さと幅をそれぞれ1とする単位です。SIZE文は記述する場所によって意味が変わります。

ITEM 文の中:

アイテムの大きさを指定します。

それ以外:

ダイアログの大きさを指定します。


●構文

SIZE(幅,高さ)


STYLE

アイテムスタイルの指定

ダイアログアイテムのスタイルを指定します。スタイル名の後にタブやグループのスタイル属性を指定します。スタイル属性は省略できます。


●構文

STYLE( スタイル名 属性... )


●スタイル

スタイル

説明、外観

PUSHBUTTON

クリックされるごとにボタンはへこみClickメッセージを発生し、その後外観を元に戻します。

DEFPUSHBUTTON

デフォルトの動作を表すボタンで、他のアイテムにフォーカスがあってもクリックされます。ボタンは太枠で囲まれて通常のボタンと区別されます。他の動作はプッシュボタンと同じです。

AUTOCHECKBOX

クリックされるごとに状態を反転させます。

・・・ チェックされています

・・・ チェックされていません

AUTORADIOBUTTON

同じグループ内のラジオボタンが選択にクリックされたとき、残りのラジオボタンを非選択状態にします。
ラジオボタンは排他の効果があります。

・・・ チェックされています

・・・ チェックされていません

EDIT

矢印キーで編集可能なテキストの入力フィールドです。

PASSWORD

スタイルが"EDIT"の時に有効な属性で、入力された文字列を*で表示します。
指定例) STYLE(EDIT PASSWORD TABSTOP)

STATIC

フォーカスを持たない静的なテキストです。

スタティックテキスト

GROUPBOX

複数のアイテムを視覚的にグループ化します。左上に任意のテキストを表示可能です。実際のグループ動作はGROUPスタイルを使用してください。


●スタイル属性

スタイル属性は以下の値を組み合わせ指定します。

パラメータ

説明

GROUP

次のグループスタイルを持つアイテムまでをグループ化します。グループ化するとカーソルキーはグループ内を移動するようになります。

TABSTOP

タブキーを有効にします。タブスタイルを持たないアイテムはタブキーによるフォーカス移動はしません。


TEXT

アイテムテキストの設定

アイテムのテキストを指定します。


●構文

TEXT(文字列)


TITLE

タイトルバーテキストの設定

ダイアログのタイトルバーのテキストを指定します。


●構文

TITLE(文字列)


XY

ダイアログ、アイテムの位置の指定

ダイアログまたはアイテムの位置を指定します。XY文は記述する場所によって意味が変わります。位置は画面の左上隅を0,0とし、半角文字の高さと幅をそれぞれ1とする単位です。ダイアログの位置設定を省略した場合はデフォルト処理として、ダイアログは画面中央にセンタリングされます。

ITEM 文の中:

アイテムの位置を指定します。

それ以外:

ダイアログの位置を指定します。


●構文

XY( X位置, Y位置)