この節では、New Window()のディスプレイボックスと今後廃止されるDialog()スクリプトの違いを紹介します。New WindowとDialogのディスプレイボックスは違いをまとめたものです。表の後の節で、詳細を説明しています。
<<Modal,
<<ReturnResult,
|
Dialog( Title( "Combo Box" ),
|
|
<<Modal,
<<ReturnResult,
|
||
<<Modal,
<<ReturnResult,
|
dlg = Dialog(
Line Up(2,
|
|
<<Modal,
<<ReturnResult,
|
||
<<Modal,
<<ReturnResult,
|
dlg = Dialog(
Title( "Edit Text" ),
str1 = Edit Text( "The" ),
str2 = Edit Text( "quick" ), )
|
|
<<Modal,
<<ReturnResult,
num1 = Number Edit Box(
num2 = Number Edit Box(
|
dlg = Dialog(
Title( "Edit Number" ),
|
New Window()関数とDialog()関数の主な違いは、リストと文字列を引数として指定する方法にあります。New Window()の場合、項目をリストに入れる必要があります。Dialog()では、項目は一般にカンマで区切られます。たとえば、Combo Boxの次のような例を比べてみましょう。
win = New Window( "Combo Box",// モーダルのNew Window
<<Modal,
<<Return Result,
cb = Combo Box( {"真", "偽"} ), // 項目を中括弧で囲んだリストで指定する
);
Dialog( Title( "Combo Box" ),// モーダルのDialog
cb = Combo Box( "真", "偽" ), // 項目をカンマで区切って指定する
さらに、空のテキストを含めるとき、Dialog()では" "という形で指定できますが、 New Window()の場合はText Box (" ")と指定する必要があります。New Window()の場合はText Box (" ")と指定する必要があります。
New Window()では、H List Box()を使ってボックスを横に並べ、V List Box()を使ってボックスを縦に並べます。Dialog()では、代わりにH ListとV Listを使用します。
win = New Window( "H List Box",
<<Modal,
<<Return Result,
H List Box(
kb1 = Check Box( "a" ),
kb2 = Check Box( "b" ),
kb3 = Check Box( "c" )
),
);
dlg = Dialog( Title( "H List" ),
H List(
kb1 = Check Box( "a", 0 ),
kb2 = Check Box( "b", 0 ),
kb3 = Check Box( "c", 0 )
),
);
win = New Window( "Line Up Box",
<<Modal,
<<Return Result,
V List Box(
Lineup Box( N Col( 2 ),
Text Box( "この値を指定" ),
var1 = Number Edit Box( 42 ),
Text Box( "別の値を設定" ),
var2 = Number Edit Box( 86 ),
),
),
H List Box( Button Box( "OK" ), Button Box( "キャンセル" ) ) )
);
[OK]をクリックすると、次の結果がログウィンドウに表示されます。
dlg = Dialog(
V List(
Line Up( 2,
"この値を設定", variable = Edit Number( 42 ),
"別の値を設定", var2 = Edit Number( 86 )
),
H List( Button( "OK" ), Button( "キャンセル" ) )
)
);
[OK]をクリックすると、次の結果がログウィンドウに表示されます。
メモ: [OK]と[キャンセル]のボタンの位置は、OSの種類に応じ、ダイアログボックスのスタイルに合わせて調整されます。場合によっては、Button( "OK" )とButton( "キャンセル" )の配置のために、H List Box()、V List Box()、Line Up Box()の設定が無効になることがあります。このためダイアログボックスが想定していたものと少し異なる場合もあります。
New Window()でパネルを示す枠の中にラジオボタンを配置したい場合、Panel Box()コンテナを定義しなければなりません。
win = New Window( "Radio Box",
<<Modal,
<<Return Result,
Panel Box( "選択",
rbox = Radio Box( {"a", "b", "c"} )
)
);
Dialog()では、Radio Buttons()は自動的にパネルボックス内に表示されます。
dlg = Dialog( Title( "Radio Button" ),
rb = Radio Buttons( {"a", "b", "c"} ),
);
win = New Window( "Text Edit Box",
<<Modal,
<<Return Result,
V List Box(
Text Box( "文字列" ),
str1 = Text Edit Box( "The" ),
str2 = Text Edit Box( "quick" ),
str3 = Text Edit Box( "brown" ),
str4 = Text Edit Box( "fox" ),
str5 = Text Edit Box( "jumps" ),
str6 = Text Edit Box( "over" ),
str7 = Text Edit Box( "the" ),
str8 = Text Edit Box( "lazy" ),
str9 = Text Edit Box( "dog" ) ) );
dlg = Dialog(
Title( "Edit Text" ),
V List(
"文字列",
str1 = Edit Text( "The" ),
str2 = Edit Text( "quick" ),
str3 = Edit Text( "brown" ),
str4 = Edit Text( "fox" ),
str5 = Edit Text( "jumps" ),
str6 = Edit Text( "over" ),
str7 = Edit Text( "the" ),
str8 = Edit Text( "lazy" ),
str9 = Edit Text( "dog" )
)
);
指定の文字列を含む編集可能なボックスを作成するもう1つの方法は、String Col Edit Box()を使用する方法です。たとえば、次のスクリプトは「String Col Edit Box」という名前のウィンドウを作成します。このウィンドウには「文字列」という名前の編集可能なボックスの列があり、各ボックスに指定の文字列が挿入されます。
win = New Window( "String Col Edit Box",
<<Modal,
<<Return Result,
steb = String Col Edit Box(
"文字列",
{"The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"}
)
);
メモ: 前述の例でString Col Edit Box()がリストに割り当てる要素は2つだけです(「文字列」および指定されたリスト項目)。New Window()と廃止されたDialog()の例では、Text Edit Box()が10の要素をリストに割り当てています。
win = New Window( "Number Edit Box",
<<Modal,
<<ReturnResult,
V List Box(
Text Box( "乱数" ),
num1 = Number Edit Box( Random Uniform() ),
num2 = Number Edit Box( Random Uniform() * 10 ),
num3 = Number Edit Box( Random Uniform() * 100 ),
num4 = Number Edit Box( Random Uniform() * 1000 )
),
);
dlg = Dialog(
Title( "Edit Number" ),
V List(
"乱数",
num1 = Edit Number( Random Uniform() ),
num2 = Edit Number( Random Uniform() * 10 ),
num3 = Edit Number( Random Uniform() * 100 ),
num4 = Edit Number( Random Uniform() * 1000 )
),
);
同じウィンドウを作成するもう1つの方法は、Number Col Edit Box()を使って指定の数値を含む編集可能なボックスを作成する方法です。たとえば、次のスクリプトは「Number Col Edit Box」という名前のウィンドウを作成します。このウィンドウには「乱数」という名前の編集可能なボックスの列があり、各ボックスに指定した種類の乱数から得られた値が表示されます。
win = New Window( "Number Col Edit Box",
<<Modal,
<<ReturnResult,
nceb = Number Col Edit Box(
"乱数",
{num1 = Random Uniform(), num2 = Random Uniform() * 10, num3 =
Random Uniform() * 100, num4 = Random Uniform() * 1000}
),
);
メモ: 前述の例でNumber Col Edit Box()がリストに割り当てる要素は2つです。Number Col Edit Box()のNew Window()と廃止されたDialog()の例では、5つの要素をリストに割り当てています。