需要局部變量來關閉窗口我正在嘗試生成多個窗口並讓關閉按鈕分別關閉每個窗口。但是,它並沒有按我預期的方式工作。嘗試運行代碼 2x;關閉按鈕適用於一個窗口,但不適用於另一個窗口。
::a = "The quick fox jumped over the brown log";
::b = "Hello World I want to get off now";
names default to here(1);
nw = new window("Test",
text box(::a),
text box(::b),
button box("Close", nw << close window)
);


圖形腳本Re: 需要局部變量來關閉窗口謝謝戴夫!很乾淨的解決方案。
Re: 需要局部變量來關閉窗口一旦腳本完成執行,nw 變量就超出了範圍。
我更喜歡這種方法:
::a = "The quick fox jumped over the brown log";
::b = "Hello World I want to get off now";
names default to here(1);
nw = new window("Test",
text box(::a),
text box(::b),
button box("Close", currentReport() << close window)
);Re: 需要局部變量來關閉窗口您的代碼失敗,因為您第二次運行腳本時,“nw”變量被更改為指向最新的窗口。基本上,問題在於“Here”命名空間與腳本窗口相關聯,而不是每個實例都從腳本窗口運行。每次運行代碼時,我的代碼都會創建一個新變量。
關於雙下劃線,這只是我使用的標準。我發現它有助於閱讀和理解代碼是如何工作的。
Re: 需要局部變量來關閉窗口謝謝吉姆,它有效。但是有兩個問題:
1. 為什麼你的工作而不是我的工作?
2.您似乎正在將 __nw__ 分配給一個隨機整數,但它已經是“窗口句柄”。這不會覆蓋它的窗口句柄值嗎?
作為一個額外的問題,為什麼所有的雙下劃線?沒有它們,代碼可以正常工作。
Re: 需要局部變量來關閉窗口這是我將如何處理它
::a = "The quick fox jumped over the brown log";
::b = "Hello World I want to get off now";
Names Default To Here( 1 );
Eval(
Substitute(
Expr(
__nw__ = New Window( "Test",
Text Box( ::a ),
Text Box( ::b ),
Button Box( "Close", __nw__ << close window )
)
),
Expr( __nw__ ),
Parse( "nw" || Char( Random Integer( 1, 999999999 ) ) )
)
);