可以从样本单元调用DWS函数吗?

时间:2016-08-29 07:33:47

标签: delphi dwscript

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

FExecution.Info.Func['Test.ClickProc'].Call(AParams); (This is not working)

FExecution - IdwsProgramExecution;

在脚本代码中声明的函数:

unit Test;
Uses UTestUnit;
procedure TestFunc(LParam: string);
begin
  ShowMessage(LParam);
end;
procedure ClickProc(Sender: TObject);
begin
  ShowMessage('DWS');
end;
var  S: TStringList;
var  btn: TButton;
begin
  btn := TButton.Create(MainForm);
  btn.OnClick := ClickProc;
  btn.Parent(MainForm);
end.

此示例中的ClickProc。

1 个答案:

答案 0 :(得分:1)

我不认为可以做到。

?$filter=ageranges/any(a: a eq 'xxxx') 的调用中的符号查找不会将名称解析为单位范围和标识符,而是对名为“Test.ClickProc”的符号进行简单查找。但是,由于Info.Func[]过程符号名为“ClickProc”,因此查找无法找到它。

我想也许可以通过符号表手动找到程序符号...

ClickProc

...但在查阅了“文档”(阅读:研究源代码,逐步调试调试器以及大量试错)后,我得出的结论是,无法完成在这个时候可靠。 可以在许多符号表中的一个中找到“ClickProc”符号,但是我无法找到一种可靠的方法来使用单位名称/符号来限定符号。