Веб-скрипт Delphi: как вызвать функцию скрипта из кода Delphi в контексте выполнения?

#delphi #dwscript

#delphi #dwscript

Вопрос:

Визуализация этого кода сценария:

 procedure A;
begin
  CallToDelphi;
end;

procedure B;
begin
  // do something
end;
  

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

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

Возможно ли это каким-то образом?

Ответ №1:

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

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

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

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

Комментарии:

1. Спасибо. Я уже просмотрел модульные тесты, но не нашел его. Спасибо за ваше руководство. Теперь все ясно. Это именно то, что я искал.