可以从样本单元调用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。
答案 0 :(得分:1)
我不认为可以做到。
对?$filter=ageranges/any(a: a eq 'xxxx')
的调用中的符号查找不会将名称解析为单位范围和标识符,而是对名为“Test.ClickProc”的符号进行简单查找。但是,由于Info.Func[]
过程符号名为“ClickProc”,因此查找无法找到它。
我想也许可以通过符号表手动找到程序符号...
ClickProc
...但在查阅了“文档”(阅读:研究源代码,逐步调试调试器以及大量试错)后,我得出的结论是,无法完成在这个时候可靠。 可以在许多符号表中的一个中找到“ClickProc”符号,但是我无法找到一种可靠的方法来使用单位名称/符号来限定符号。