需要局部变量来关闭窗口我正在尝试生成多个窗口并让关闭按钮分别关闭每个窗口。但是,它并没有按我预期的方式工作。尝试运行代码 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 ) ) )
)
);