Set Selected(Item Number, <State>, <Run Script(0|1)>)メッセージを使うと、項目を最初から選択された状態にすることができます。このメッセージは、保存されているディスプレイボックス参照に対して送るか、ディスプレイボックスの<<メッセージとして指定できます。
選択されている値を取得するには、Get Selectedメッセージ使用します。このメッセージは、選択された項目の値を戻します。Get Selected Indicesメッセージは、選択された項目の通し番号を戻します。
antennaList = {"パラボラ","ヘリカル","極性","ラジアントアレイ"};
win = New Window( "リストのテスト", // 方法1: ディスプレイボックスの参照
listObj = List Box(
antennaList,
Print(
"iList",
listObj << Get Selected,
listObj << Get Selected Indices
)
)
);
listObj << Set Selected( 2, 1 );
win = New Window( "リストのテスト", // 方法2: インライン
listObj = List Box(
antennaList,
<<Set Selected( 2, 1 ),
Print(
"iList",
listObj << Get Selected,
listObj << Get Selected Indices
)
)
);
この2つのスクリプトは、どちらも次のテキストをログに出力します。
"iList"
{"ヘリカル"}
{2}
前述の例では、Set Selectedメッセージが完了すると、Print式が実行されます。スクリプトが実行されないようにするには、最後の引数としてRun Script(0)を含めます。Run Script( 0|1 )は、ディスプレイボックスの変化に反応するスクリプトをSetまたはSet Selectedメッセージの後で実行するかどうかを制御します。
antennaList = {"パラボラ","ヘリカル","極性","ラジアントアレイ"};
win = New Window( "リストのテスト",
listObj = List Box(
antennaList,
Print(
"iList",
listObj << Get Selected,
listObj << Get Selected Indices
)
)
);
listObj << Set Selected( 2, 1, Run Script( 0 ) );
Run Script( 1 )を指定すると、Setメッセージの完了後にスクリプトが実行されます。値に変化がない場合でも実行されます。(ただし、ユーザが同じ項目を選択した場合は、スクリプトは実行されません。)Run Script( 0 )を指定すると、スクリプトが実行されなくなります。
対話的に操作できるディスプレイボックスのほとんどでは、Run Script()を指定しなければ、スクリプトは実行されません。ただし、List Box()では、上記の例における動作のように、デフォルトではスクリプトが実行されます。