问题标签 [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 投票
1 回答
15983 浏览

delphi - 如何使用 dwscript 调用 CreateOleObject 函数?

我正在尝试从 dwscript 内部执行此代码(这是使用 CreateOleObject 的最小示例)

到目前为止我试过这个

但我收到此错误消息

语法错误:未知名称“CreateOleObject”[行:5,列:8]

问题是我如何CreateOleObject使用 dwscript 执行该功能?

更新

按照Linas的建议,我终于可以解决这个问题。

这是一个示例工作应用程序

0 投票
2 回答
851 浏览

delphi - 如何安装 DWSScript

我在安装 DWSScript 组件时遇到问题。我正在使用 Delphi XE2,当我尝试编译 dwsLibRuntime.dpk 时出现错误(需要数组类型)。我正在使用从项目的 svn 存储库中提取的最新 DWScript 源。

我究竟做错了什么?

0 投票
1 回答
466 浏览

delphi - delphi DWScript - 在脚本运行时更改 TObject 类型的脚本变量值

我有一个像这样的 DWScript

TOutputter(只是复杂类的一个示例)在 delphi 代码中声明和创建,并通过 Rtti 暴露给 DWScript。

我想将编译后的脚本用于多个实例,但更改它链接到当前实例的值 Outputter。我知道我可以通过以下方式访问脚本变量:

但该值是一个变体,所以我不能分配一个对象。如何更改值?如果我首先在脚本中创建类,例如:

我可以为 Exec.Info.Vars['Outputter'].ScriptObj.ExtObject 分配一个任意的 TOutputter 实例(在 delphi 代码中创建)并通过 Outputter 在脚本代码中访问它们。但是我想分配一个delphi代码创建的没有init部分的TOutputter实例。

谢谢你的帮助!

0 投票
1 回答
594 浏览

delphi - Dwscript 网络服务器

我想使用 dwscript 进行网络编程(生成动态内容)。我想知道是否有任何用于 apache Web 服务器的模块?或者我怎样才能运行我自己的基于 dwscript 的 web 服务器?

0 投票
1 回答
439 浏览

delphi - 编译包含 TForm.Create(nil) 的 dwscript 时堆栈溢出

我正在尝试使用 dwscript 创建一个模态表单。我用 ExposeRtti 注册表单,然后执行脚本,但它在 Script.Compile 期间因“堆栈溢出”而失败。有没有人有这个错误的解决方案。

我当然希望我不必像使用 remobjects PascalScript 那样手动注册所有 TForm 属性和函数,这会让我们在这个时代变得丑陋,想避免这种情况..

dwscript 可以做到这一点,还是表单只是超出了 dwscript 的范围(现阶段?)?

0 投票
1 回答
390 浏览

delphi - 调用一个 dwscript 过程,其中一个类作为来自 delphi 的参数

如何从 delphi 调用以类为参数的 DWScript 过程?

前任:

DWScript 方面:

德尔福方面:

0 投票
2 回答
698 浏览

delphi - DWScript 线程安全吗?

我想知道 DWScript 是否能够在脚本中使用线程,因为某些引擎不会同步对其内部数据结构的访问。

0 投票
2 回答
474 浏览

delphi - 有没有办法在执行 DWScript 两次时保留变量值?

我正在开发的应用程序允许将脚本 sinppets 嵌入到文档中。例如:

结果

我正在使用 DWScript。在内部,第一个脚本片段被编译和执行。比下一个是 RecompiledInContext 并执行等等。在片段中声明的函数/变量/等在所有以后的片段中都可用。然而,片段之间的变量值会丢失。例如:

生成文档后:

这是一个说明问题的示例应用程序:

有没有办法在执行之间“转移”或“保留”变量值?

这是安德鲁答案的更新代码,它不起作用:

0 投票
1 回答
275 浏览

delphi - 序列化 TdwsProgram

据我了解,DWScript不会将脚本编译成中间字节码。
但是,我希望能够存储“已编译”脚本,以便能够通过流发送它或将其保存到文件中。

我想知道:有没有办法序列化一个TdwsProgram对象?

我没有设法在任何地方找到任何答案。我查看了代码,似乎不可能,但我想我还是应该问这个问题......

0 投票
2 回答
464 浏览

delphi - DWScript 安装

我正在尝试在 XE2 中安装 DWScript,但我似乎很挣扎。我找不到任何最新的安装说明,而且我找到的旧说明似乎不再适用。

我已经尝试过 svn 存储库中的 head 以及以前的版本之一,但都没有太多运气。

我已将源目录添加到我的库路径中。

当我最初打开 dwsLib 时,我有一条 TdwsUnit not found 消息,尽管它似乎可以编译。dwsLibDesignOnly 和 dwsLibRuntime.dpk 都有一个关于 dwsCodeGen 丢失的错误,并且看起来图书馆中有一个完整的 JSCodeGen 目录不存在但应该存在。

任何帮助将非常感激。

谢谢,

理查德