3

想象这个脚本代码:

procedure A;
begin
  CallToDelphi;
end;

procedure B;
begin
  // do something
end;

我已经向脚本公开了“CallToDelphi”过程。所以当它被调用时,我从我的 Delphi 代码中的脚本回来了。我现在想从我的 Delphi 代码中调用脚本过程“B”。我认为必须隐藏在 IdwsProgramExecution-Context 中。但我还没有找到任何东西。我正在寻找类似的东西:

procedure CallToDelphi;
begin
  Exec.Invoke('B', []); // Exec is IdwsProgramExecution
end;

这有可能吗?

4

1 回答 1

2

您正在寻找的可能是 IInfo 接口,它可以用作

Exec.Info.Func['B'].Call([])

http://code.google.com/p/dwscript/wiki/FirstSteps中有更多示例(向下滚动到函数),还有单元测试中的一些使用代码(特别是 UdwsUnitTests,请参阅 CallFunc 方法)。

IInfo 将 Delphi 端作为查询 RTTI、调用函数、直接获取/设置变量、实例化脚本端对象等的主要方式。不过,它的大多数示例代码目前都在单元测试中。

于 2011-05-12T04:17:27.567 回答