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


图形脚本编写回复:需要局部变量以关闭窗口这是我的处理方式
::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 ) ) )
)
);回复:需要局部变量以关闭窗口谢谢吉姆的工作。但是有两个问题:
1.为什么您的工作而不是我的?
2.似乎您正在将__nw__分配给随机整数,但是它已经是“窗口句柄”。那不是覆盖它的窗口句柄值吗?
作为奖励问题,为什么所有双下划线都是?没有它们,代码可以正常工作。
回复:需要局部变量以关闭窗口您的代码失败,因为第二次运行脚本时,“ nw”变量被更改为指向最新的窗口。基本上,问题是“此处”命名空间与脚本窗口相关联,而不是每个实例都从脚本窗口运行。每次运行代码时,我的代码都会创建一个新变量。
关于双下划线,这只是我使用的标准。我发现它有助于阅读和理解代码的工作方式。