如何偵測標題框是否已關閉?你好!
我有一個腳本可以循環訪問資料單元格並進行一些資料處理。
為了讓使用者了解目前正在處理哪個儲存格,我新增了這一行:
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
儘管如此,我擔心有兩個視窗(一個標題框和一個視窗框)只是為了有一個退出按鈕。
謝謝您的幫忙。
回覆:如何偵測標題框是否已關閉?只要您追蹤表,您就可以考慮使用「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);
);回覆:如何偵測標題框是否已關閉?@ian_jmp
我是這樣做的:
CheckBlock=Expr (
stattb<<SETTEXT></SETTEXT>不知何故,“取消”按鈕沒有發揮作用,我想我把它放在腳本中是錯誤的。
嗯,不幸的是,透過(X)按鈕異常中止會留下大量不可見的資料表。
還在檢查如何處理。
謝謝您的幫忙。
回覆:如何偵測標題框是否已關閉?謝謝! 讓我檢查一下如何使其適應我當前的腳本。
回覆:如何偵測標題框是否已關閉?看起來您無法向“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>