モーダルウィンドウのキャンセルボタンユーザーがリスト内の 1 つ以上のチェック ボックスを選択できるようにするモーダル ウィンドウで始まるスクリプトを作成しました。 スクリプトは問題なく動作します。唯一の問題は、モーダル ウィンドウに [OK] ボタンがあり、[キャンセル] ボタンがないことです。 ユーザーが上隅の X を使用してモーダル ウィンドウを終了した場合、スクリプトの最初の部分 (チェック ボックス リストの情報を必要としない部分) は引き続き実行されます。 ユーザーが「OK」をクリックした場合にのみこのスクリプトを実行するにはどうすればよいですか? モーダル ウィンドウ スクリプトは次のとおりです (非常に長いので申し訳ありません)。
Names Default To Here( 1 );
Win1 = New Window( "Base Count Selection",
<<MODAL></MODAL>
Re: モーダルウィンドウのキャンセルボタン[OK] ボタンはすべてのモーダル ウィンドウに対して自動的に生成されますが、独自の [OK] ボタンと [キャンセル] ボタンを作成することもできます。
通常、コードを関数に分割し (式を使用することもできます)、[OK] ボタンからそれらの関数を呼び出し、[キャンセル] ボタンでは何もしないため、スクリプトが停止します。
この方法論を Expression で使用する例を次に示します。
doSomething = Expr(
Print( "Do something" )
);
New Window( "Test",
<<MODAL></MODAL>
または、新しいウィンドウからの戻り値を使用して、スクリプトを続行する必要があるかどうかを判断できます。 値は、OK がクリックされた場合は {Button( 1 )} になり、キャンセル ボタンまたは X がクリックされた場合は {Button( -1 )} になります。
nw = New Window( "Test",
<<MODAL></MODAL>
Re: モーダルウィンドウのキャンセルボタンOK ボタンと共にキャンセル ボタンをモーダル ウィンドウに追加すると、ウィンドウは OK の場合は「1」、キャンセルの場合は「-1」を返します。
H List Box(button box("Cancel"),button box("OK"))