问题标签 [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 回答
262 浏览

delphi - Delphi Web Script:如何在脚本中调用全局 TForm 对象的属性?

我已经注册了 TForm 类及其“标题”属性,然后我注册了一个全局变量:

GlobalReadProc 代码:

在脚本中,我调用 MainForm variables 属性

DWScript 显示异常:

不支持接口。

我究竟做错了什么?(我使用 IUnknown 是因为我在 VarCopySafe 过程中看到了这种类型转换,并且当 VType 不是 varUnknown 时出现异常)

0 投票
1 回答
240 浏览

delphi - DWS 可以从样品单元调用函数吗?

DWS 可以从样品单元调用函数吗?例如:

FExecution - IdwsProgramExecution;

脚本代码中声明的函数:

此示例中的 ClickProc。

0 投票
0 回答
128 浏览

dwscript - 如何在 DWScript 中注册没有参数类型的函数

我想在脚本中注册一些流方法。例如

但是参数“缓冲区”没有类型(通过 dws)。如何将这种参数注册到 Delphi Web Script 中?TdwsParametr.DataType 需要写什么???

0 投票
2 回答
107 浏览

dwscript - 如何在 DWScript 中使用循环引用注册两个类?

我需要注册 TCollection 和 TCollectionItem 类,但由于属性

经常引发无法找到 TCollectionItem/TCollectionItem 类型的异常。

0 投票
0 回答
102 浏览

delphi - 关闭应用程序时出现 EdwsActivePrograms 异常

当全局定义 IdwsProgram 和 IdwsProgramExecution 变量时,我收到以下 EdwsActivePrograms 异常:

根据以下示例重现步骤: 启动应用程序,点击 Button1,然后点击 Button2,最后关闭应用程序。当我关闭应用程序时会弹出异常。

在上面的示例中, dws是一个放置在表单上的 TDelphiWebScript 组件。我的目标是在应用程序中重用 IdwsProgramExecution 实例。在 Delphi 10.1 和最新的 DWScript 源上运行。

0 投票
2 回答
124 浏览

delphi - 使用循环引用编译 DWScript 单元会给出 ECompileError "Unknown Name"

我有两个 DWScript 单元文件:

unit1的编译过程中,我得到

带有消息“未知名称“unit1.Proc1”的 ECompileError

在 IdwsProgram.Msgs.AsInfo 中包含以下文本:

语法错误:未知名称“unit1.Proc1”[行:14,列:9,文件:unit2]

请解释我如何编译这样的循环引用单元。

编辑:为了使讨论更接近我的要求,我将重新提出问题。为什么 DWScript 不允许我编译这两个单元?

0 投票
2 回答
76 浏览

delphi - 如何使用 dwsXPlatform.CollectFiles TCollectFileProgressEvent

由于我对 delphi 中的事件不熟悉,因此我正在努力研究如何将 dwsXPlatform.TCollectFileProgressEvent 与 dwsXPlatform.CollectFiles 结合使用。

在 DWScript 存储库中,没有示例甚至测试代码。

0 投票
1 回答
148 浏览

delphi - 在运行 DWScript 时监视当前行号?

我正在使用带有 TdwsDebugger 组件的最新 DWScript。但是,我不一定要向用户提供调试工具——只是直观地显示当前行号。

TdwsDebugger组件中,在它的OnDebug事件中,expr.ScriptPos似乎为我提供了这些信息。但我试图弄清楚如何在不实际“调试”的情况下利用它。

如何在不执行调试的情况下显示当前 DWScript 行号?

0 投票
0 回答
167 浏览

delphi - 如何在 DWScript 中访问一个类中另一个类对象的属性或方法?

我实际上是在 delphi 中使用 dwscript 并遇到以下问题:

我定义了两个类如下

我通过 ExposeRTTI 将两个类都暴露给 DWScript:

这基本上是有效的,因为当我插入以下行时

对于 DWScript,前 5 行已正确编译,但是当我尝试在 ClassTwo (第 6 行)中访问 ClassOne 的属性时,编译器会抛出“没有预期的成员”。我知道这是由于 RTTI 功能有限,但我不知道如何解决这个问题。

有人知道如何在脚本中访问 myClassTwo.ClassOne.Name 吗?与方法相同,顺便说一句。

提前致谢!

PS:添加了 3 行以显示更多尝试 - 没有成功...

0 投票
1 回答
284 浏览

delphi - How to expose a dynamic array of records in DWScript?

I've declared a simple record type in a DWScript unit:

How can I expose such an array from the Delphi application to the script ? For example, the following method in the Delphi application:

Must be accessible from a script: