DWScript:在公开的Delphi类中使用事件

fpi*_*tte 18 delphi dwscript

我使用TdwsUnit.ExposeRTTI方法将Delphi类暴露给脚本.它适用于基本数据类型.

但是当我添加一个时,它不起作用TNotifyEvent.我的Delphi类有一个OnChange : TNotifyEvent属性,当OnChage在脚本中分配它时,我收到一个错误

"Syntax Error: More arguments expected!"
Run Code Online (Sandbox Code Playgroud)

看起来脚本编译器理解我想调用事件处理程序而不是分配OnChange属性.添加"@"标志无济于事.

我的Delphi对象怎么能有一个事件处理程序在脚本中有他的处理程序代码?

问候.

fpi*_*tte 1

我通过使用 Windows 消息解决了该问题。我的脚本现在使用消息泵,公开的实例会发布一些自定义消息来向脚本发出事件已发生的信号。然后脚本回调Delphi代码以获取详细信息。当然,我必须实现 GetMessage / PeekMessage / TranslateMessage 和 DispatchMessage。