问题标签 [dwscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
448 浏览

delphi - 在 dwscript 中调用 query.locate

是否可以调用具有在 dwscript 中设置的类型参数的过程?我正在使用 ExposeClassToUnit 公开 TDataSet 和 TADOQuery。

我不能调用的脚本是

我尝试使用 0 而不是 []。这确实编译但随后给了我如下消息。

所有帮助表示赞赏

0 投票
1 回答
180 浏览

dwscript - DWScript:问题更新到当前开发版本

这个周末,我从 DWScript SVN 更新了我的代码库。我使用的是 Preview 2.7,现在我使用的是最新的中继版本。

我重新编译了我的应用程序,现在 OnAfterInitUnitTable 不再被触发。实际上 TdwsUnit.InitUnitTable 根本没有被调用。顺便说一句:TDWSunit 是在运行时由代码创建的,然后使用 ExposeRTTI 公开两个类。需要公开每个类的一个实例。

什么是 - 现在 - 触发 OnAfterInitUnitTable 的先决条件?

任何帮助表示赞赏。

编辑:重现的示例代码:

EDIt2:其他版本使用 Eric Grange 在下面的答案 1 中的建议显示新问题;

0 投票
1 回答
145 浏览

dwscript - DWScript:在 DLL 中时 TdwsGuardianThread.Finalize 冻结

当 dwsExprs 添加到 DLL 时,他的终结部分会冻结。Actaully TdwsGuardianThread.Finalize 被冻结在 Guardian.WaitFor 线上。

为了演示这个问题,我制作了一个示例 DLL,它是空的,只包含 dwsCript。我还制作了一个测试应用程序,加载 DLL 并立即释放它。如上所述,在退出应用程序时冻结(在 Guardian.WaitFor 上放置一个断点以查看它。

示例 DLL:



示例应用:

我正在使用 5 月 26 日从 SVN 存储库中提取的 XE4 和 DWScript。

任何帮助表示赞赏。

0 投票
0 回答
181 浏览

dwscript - DWScript,检索全局变量的属性符号

我正在覆盖 TRTTIEnvironment 并正在实现函数 FindUnknownName()。我想返回一个已通过 ExposeInstanceToUnit() 公开给程序的符号。在我的一些脚本中,全局对象的属性在脚本中但没有对象。例如。全局对象“用户”具有属性用户名。“用户名”在脚本中,而不是“用户名”。

FindUnknownName 中的代码是

这里的问题是它返回属性的类符号,因为它不是类属性,所以它会 AV。

非常感谢任何帮助获取 User 实例的属性符号。

0 投票
1 回答
226 浏览

delphi - 从模式对话框调用脚本函数给出“对象未实例化”

从下面的脚本代码中,我从 Delphi 调用 Run 过程,该过程调用也在 Delphi 中的 showmodal 过程。当从新创建的模式对话框调用 Button1Click() 时,全局变量 sl 没有被实例化。

脚本代码。

Delphi 端代码。

1) 调用 Run()

2) Showmodal 评估

3) 使用相同的 IdwsProgramExecution 对象从模式对话框调用 Button1Click

此时我收到错误“对象未实例化”。关闭对话框后,我得到了显示消息,其中没有任何内容。

0 投票
0 回答
193 浏览

delphi - 从 Delphi 添加强类型 RttiVariant 以暴露给 DWS 脚本

我希望在编译时检查我的脚本,因此不希望将我的全局变量公开为 RTTIVariant。我使用以下代码将 Screen 对象公开给脚本。

Delphi端全局变量创建

我想做的是用'RttiVariant<Vcl.Forms.TScreen>'替换'RttiVariant'。Script 对在 Delphi 端使用强 RTTIVariant 类型不满意,但在脚本端却很高兴。无论如何要做到这一点?

0 投票
1 回答
483 浏览

delphi - "{$F 'filename'}" 到底是什么意思?

DWScript 文档中我们可以看到“{$F 'filename'}”,但我不明白它的含义。可以形容吗?

0 投票
1 回答
624 浏览

json - 如何摆脱 Delphi/dwsJSON 中的 JSON unicode 文字?

我有一段 UTF-8 格式的 JSON,在 Google Chrome 中看起来像这样(没有新行):

首先,我删除了所有DBXJSON工作空间。然后我解析并打印它,结果如下:

这就是我想要的,除了需要删除空格。

如果我使用相同的 JSON 字符串作为 的输入dwsJSON,就会发生有趣的事情:

Unicode 文字没有被解释,\u0000在一个更大的文件中到处都是,并且通常会出现某种乱码。

是什么原因造成的,我应该在哪里解决它?TdwsJSONValue.ParseString接受 aUnicodeString并且我的输入是 a String,但我不确定这有什么关系(所有 Delphi String 类型都丢失了)。

0 投票
1 回答
449 浏览

delphi - DWScript 是否兼容为 Android 和 IO 创建 Delphi XE5 代码?

我可以在 Delphi XE5 程序中使用 DWScript 类在 Android 和/或 IO 下运行并使脚本工作吗?

0 投票
2 回答
649 浏览

delphi - 从 DWScript 调用类的过程

如何从在主窗体中创建的类中调用过程。可以像这个伪代码显示的那样完成吗?