你好,
我有一个名为 lf 的变量(lf = ListF << Get Items,其中 ListF 是项目列表)。 我在包含按钮框的函数中定义了 ListF。 在该按钮框的函数(在定义 ListF 的函数之后定义)中,我设置 lf = ListF << GetItems。我可以在函数内部访问 lf 变量,但在函数之后,当我编写 print(lf); 时它给了我这个名称未解决的错误。 你能给我一个想法为什么吗?
定义 ListF 的函数:
selectFileButton = Function({y},
win1 = New Window( "Select Files",
Lineup Box( N Col( 2 ), Spacing( 3 ),
Button Box( "File To Tag", ListF << Append( ListData << GetSelected )),
ListF = List Box( fileSelected, width( lbWidth ), nLines( 5 ), Numeric ), <BR />Button Box("OK", OKScript1)))); <BR />定义 lf 的函数:
OKScript1 = Expr(
//win1 << CloseWindow;
lf = ListF << Get Items);
在这两个函数之外:
print(lf);
变量范围*可能*是问题所在。 “lf”似乎是在 eval 代码块内部创建并分配了一个值:一个局部变量。 当该代码块完成时,垃圾收集将删除局部变量。
定义“lf”并尽早为其分配一个虚假值,以便它成为全局的。 然后,当稍后运行 eval 时,它不会定义本地“lf”,而是定义全局“lf”,然后 eval 更新。
仍然坚持这一点,非常感谢任何帮助。 如果需要的话会提供完整的代码,谢谢。