Delphi Web Script: как вызвать функцию скрипта из кода Delphi в контексте выполнения? - PullRequest
3 голосов
/ 11 мая 2011

Представление этого скриптового кода:

procedure A;
begin
  CallToDelphi;
end;

procedure B;
begin
  // do something
end;

Я выставил процедуру "CallToDelphi" скрипту.Поэтому, когда он вызывается, я возвращаюсь из скрипта в своем коде Delphi.Теперь я хочу вызвать процедуру сценария «B» из моего кода Delphi.Я думаю, что это должно быть скрыто в IdwsProgramExecution-Context.Но я еще ничего не нашел.Я ищу что-то вроде этого:

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

Это как-то возможно?

1 Ответ

2 голосов
/ 12 мая 2011

Что вам нужно, это, вероятно, интерфейс IInfo, который можно использовать как

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

В http://code.google.com/p/dwscript/wiki/FirstSteps есть еще несколько примеров (прокрутите вниз до функций), а также некоторый код использования в модульных тестах (особенно UdwsUnitTests, см. Метод CallFunc).

IInfo служит на стороне Delphi в качестве основного способа запроса RTTI, непосредственного вызова функций, получения / установки переменных, создания экземпляров объектов на стороне сценария и т. Д. Большая часть примера кода в настоящее время находится в модульных тестах.

...