スクリプトガイド > 表示ツリー > 独自のウィンドウの作成 > 選択された項目をリストで取得・設定する
公開日: 09/19/2023

選択された項目をリストで取得・設定する

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()では、上記の例における動作のように、デフォルトではスクリプトが実行されます。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).