刷新Windows和窗口持久性<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好。 我有一個表達式,首先創建一個模態通知窗口,點擊OK後,它會創建第二個編輯窗口。 在編輯窗口中,有一個關閉窗口並重新執行原始表達式的“刷新”按鈕。當我點擊“刷新”時,編輯窗口按預期關閉,模態通知窗口再次出現。 但是,即使原始editwin已經關閉,編輯窗口的第二次迭代也會在其名稱後附加一個“2”(“editwin 2”)。 此外,在第一次關閉編輯窗口時應該立即運行的<< On Close腳本 - 直到第二個通知窗口實例關閉並且編輯窗口的第二個實例即將打開之後才會運行。 看起來雖然編輯窗口已關閉,但它會持續存儲在內存中,直到出現編輯窗口的下一個實例。
有沒有人對這種行為有一個很好的解釋,更重要的是,解決方法是什麼?
謝謝。
名稱默認為此處(1);
刪除符號();
editwin.expr = Expr(
BB1 = ButtonBox(“ok”,
窗口(“editwin”)<<關閉窗口;
);
BB2 = ButtonBox(“刷新”,
窗口(“editwin”)<<關閉窗口;
editwin.expr;
);
modwin =新窗口(“modwin”,<< Modal,
TextBox(“我是一個通知窗口”),
ButtonBox(“OK”,寫(“關閉modwin \!N”))
);
editwin =新窗口(“editwin”,
TextBox(“我是編輯窗口”),
BB1,BB2
);
editwin << On Close(寫(“關閉editwin \!N”));
editwin <<設置窗口大小(300,200);
);
editwin.expr;
回复:刷新Windows和窗口持久性只是提供此代碼,以防它為您提供解決問題的不同方法
名稱默認為此處 ( 1 ) ;
編輯窗口 = 功能 ({} , { 默認本地 } ,
nwEdit = 新窗戶 ( “editwin” , << 語氣 ,
文本框 ( “我是一個編輯窗口” ) ,
ButtonBox ( “好” ) ,
) ;
如果 ( nwEdit [ “按鈕” ] == - 1 ,
retVal的 = 1
,
retVal的 = 0
) ;
retVal的
) ;
NW = 新窗戶 ( “modwin” , << 語氣 ,
<< 在驗證 (
編輯窗口 ()
) ,
文本框 ( “我是一個通知窗口” ) ,
ButtonBox ( “好” ,寫 ( “關閉modwin \!N” ) ; )
) ;
回复:刷新Windows和窗口持久性你是對的,我的解決方法並沒有解決窗口nwaming問題,但它確實消除了對窗口名稱的依賴。jJMLP Jmp將窗口關閉傳遞給操作系統,因此它失去了對窗口實際關閉時的絕對控制
回复:刷新Windows和窗口持久性有趣。 我正在使用JMP 11.1.1 for Windows(64位)。 我不准備將此問題視為11對12問題或Mac對Windows問題。 無論如何,我仍然需要為我當前的配置找到一種解決方法。
回复:刷新Windows和窗口持久性不幸的是,您的腳本不會阻止重命名窗口。 我試過並得到完全相同的行為。
回复:刷新Windows和窗口持久性僅供參考,我在JMP 12 for Mac中嘗試過該腳本,但我沒有看到這個問題。editwin每次都被命名為editwin,沒有自動編號。
但是,在Windows的JMP 12中我能夠重現這個問題:editwin 2,editwin 3等。每次刷新後生成。不知道為什麼。
Txnelson方法提供了一個很好的解決方法
回复:刷新Windows和窗口持久性我無法解決窗口命名問題。 看來JMP在執行給定EXPR期間保留了名稱。 但是,下面的代碼通過對窗口的句柄進行所有操作而不是窗口的名稱來消除對窗口名稱的擔憂:
名稱默認為此處(1);
刪除符號();
editwin.expr = Expr(
BB1 = ButtonBox(“ok”,
editwinx <<關閉窗口;
);
BB2 = ButtonBox(“刷新”,
editwinx <<關閉窗口;
editwin.expr;
);
modwin =新窗口(“modwin”,<< Modal,
TextBox(“我是一個通知窗口”),
ButtonBox(“OK”,寫(“關閉modwin \!N”));
);
editwinx =新窗口(“editwin”,
TextBox(“我是編輯窗口”),
BB1,BB2
);
editwinx << On Close(寫(“關閉editwinx \!N”));
editwinx <<設置窗口大小(300,200);
);
editwin.expr;