没关系,我已经找到原因了——其中一个函数有 Eval() 函数,它会在脚本启动时立即执行该函数。
我正在编写一个简单的图形用户界面原型:
组合框中列出表格,添加/打开表格的按钮,以及显示当前所选表格列名的筛选列框。
第一次运行时一切正常——表格切换正常,列显示正常,组合框会对表格的添加、关闭或重命名做出反应。
我使用表订阅来实现这一点。
关闭图形界面窗口后,我再次启动脚本,却遇到了一些与符号未定义相关的随机错误(这是一个新运行的实例)。就好像脚本启动时会随机运行之前实例中的代码片段,而找不到这些片段中定义的变量。
我在错误弹出窗口中点击“确定”并再次运行——脚本运行正常。
这是我的窗口关闭函数:
onWindowCloseExpr = Expr( Write("\!nRunning on window close expression"); For Each({_dt, _index}, (data:tablesListAA << Get Values), Close(_dt, NoSave); ); Unsubscribe to Data Table List( aSub ); Clear Symbols(); Stop(); );
我在排查问题时添加了 Clear Symbols() 和 Stop() 函数,以确保脚本停止运行并清除所有内容。
知道发生了什么以及如何解决吗?