キャプションボックスが閉じているかどうかを検出するにはどうすればよいですか?やあ!
データのセルをループしてデータ処理を行うスクリプトがあります。
現在処理しているセルをユーザーに知らせるために、次の行を追加します。
Caption("Processing "||Char(i)||" out of "||Char(Nrows(dtmed))||" Cells...");とにかく、キャプションを閉じると、スクリプトは次の反復に進みます。 私が欲しいのは、ユーザーがキャプションボックスを閉じた場合にスクリプトを終了することです。 キャプションボックスが閉じられた場合にステータスを表示する機能があるのではないでしょうか。
とにかく、最後の手段はこのスレッドです:
https://community.jmp.com/t5/Discussions/Jsl-How-can-i-stop-a-script-with-a-button/td-p/6787
ただし、エスケープボタンを表示するためだけに2つのウィンドウ(1つのキャプションボックスと1つのウィンドウボックス)があるのではないかと心配しています。
助けてくれてありがとう。
Re:キャプションボックスが閉じられているかどうかを検出するにはどうすればよいですか?テーブルを追跡している限り、「OnClose()」を使用してハウスキーピングを行うことを検討できます。
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = NewWindow("Using 'On Close'", << onClose(onCloseBlock), TextBox("Close Me"));
onCloseBlock =
Expr(
Print("Closing table "||(dt << getName));
Close(dt, NoSave);
);Re:キャプションボックスが閉じられているかどうかを検出するにはどうすればよいですか?@ian_jmp
私はそれをこのようにしました:
CheckBlock=Expr (
stattb<<SETTEXT></SETTEXT>どういうわけか、キャンセルボタンはその仕事をしていません、私はそれをスクリプト内に間違って配置したと思います。
うーん、残念ながら、(X)ボタンによる異常な中止は、多くの非表示のデータテーブルを残します。
まだそれに対処する方法をチェックしています。
助けてくれてありがとう。
Re:キャプションボックスが閉じられているかどうかを検出するにはどうすればよいですか?ありがとう! これを現在のスクリプトにどのように適合させることができるかを確認しましょう。
Re:キャプションボックスが閉じられているかどうかを検出するにはどうすればよいですか?'Caption()'にメッセージを送信して操作することはできないようです。
他のスレッドにあるものを適応させて、次のようなことを試すことができます。
NamesDefaultToHere(1);
nw = NewWindow("Stop script",
tb = TextBox("Press 'Run'... \!n"),
bb1 = ButtonBox("Run", runScript),
bb2 = ButtonBox("Cancel", stopFlag = 1),
);
nw << setWindowSize(150, 120);
runScript =
Expr(
bb1 << enable(0);
stopFlag = 0;
for(i=1,i<=100, i++,
Wait(1);
if(stopFlag,
// Stop . . .
nw << closeWindow;
Print("Stopped after "||Char(i)||" seconds.");
Stop(),
// Else update display . . .
tb << setText("Counted for "||Char(i)||" seconds.")
);
);
nw <<CLOSEWINDOW></CLOSEWINDOW>