モーダルウィンドウを表示するスクリプトが実行されると、JMP はウィンドウを作成し、ユーザがそれに応答して[OK]をクリックするのを待ちます。ウィンドウの外をクリックしてもエラー音が鳴るだけで、ユーザが[OK]または[キャンセル]をクリックするまではスクリプトの実行が停止されます。
Column Dialog()関数は、ユーザに現在(最前面)のデータテーブルから列を選択させることに特化した機能です。Column Dialog()で作成されるウィンドウも、モーダルウィンドウです。
win = New Window( "値の指定",
<<Modal,
Text Box( "値を指定してください。" ),
variablebox = Number Edit Box( 42 ),
Button Box( "OK"),
Button Box( "キャンセル")
);
Number Edit Box()の引数42がその変数のデフォルト値となることに注意してください。
図11.34 モーダルディスプレイボックスの例
[OK]をクリックすると、ウィンドウが閉じ、{Button(1)}が戻されます。ボックスに入力された値を取得するには、Return Resultメッセージを指定し、後でウィンドウに添え字を付けて記述します。将来廃止されるDialog()が、変数の割り当てのリストを戻していたのと同様です。
win = New Window( "値の指定",
<<Modal,
<<Return Result,
Text Box( "値を指定してください。" ),
variablebox = Number Edit Box( 42 ),
Button Box( "OK" ),
Button Box( "キャンセル")
);
Write( win["variablebox"] );
// 変数名variableboxを添え字に指定する
[キャンセル]をクリックすると、ウィンドウは閉じ、{Button(-1)}が戻されてスクリプトの実行が継続されます。
If( win["Button"] == 1,
Print( win["variablebox"] );
,
Print("キャンセルされました。")
);
モーダルウィンドウには、少なくとも1つのボタンが必要です。スクリプトにButton Box()が含まれない場合、[OK]ボタンが1つ自動的に含められます。[OK]ボタンを表示しないようにするには、<<Visibilityに”Collapse”を指定します。
win = New Window( "[OK]ボタンを表示しない例",
<<Modal,
b = Button Box( "ウィンドウを閉じる", b << Close Window ),
bb = Button Box( "OK", <<Visibility( " collapse " ) )
);
メモ: モーダルウィンドウには、ウィンドウを閉じるためのボタンが少なくとも1つ必要です。モーダルウィンドウのボタンのラベルには、[OK]、[Yes](はい)、[No](いいえ)、または[Cancel](キャンセル)が使用できます。モーダルウィンドウにボタンがまったく含まれていない場合、JMPは[OK]ボタンを追加します。