3.10. Работа с несколькими модулями (Units)

Назад: 3.9 Отладка скриптов Содержание Дальше: 3.11 Использование фреймворков

До сих пор мы все действия делали в одном модуле (Unit), однако обычно схожие по назначению функции выделяются в отдельные модули и уже из этих модулей вызываются функции.

Для того, чтобы добавить новый модуль, необходимо щелкнуть правой кнопкой мыши на элементе проекта Scripts и выбрать пункт меню Add – New Item, а затем в появившемся окне ввести имя нового модуля.

Предположим, что у нас есть два модуля: Unit1 и Unit2, и мы хотим из модуля Unit2 вызвать функцию, которая находится в модуле Unit1. Это можно сделать двумя способами:

  1. С помощью метода Runner.CallMethod
  2. Подключив модуль Unit1 в модуле Unit2

Пример использования первого метода:

function MyFunction1()
{
  Runner.CallMethod(“Unit1.Sleep”, 10);
}

Обратите внимание, что имя вызываемой функции содержит имя модуля и имя функции, разделенные точкой. Дальше через запятую задаются параметры, которые передаются в вызываемую функцию.

Если функции из какого-то модуля используются часто, есть смысл один раз подключить этот модуль и затем вызывать функции из него напрямую. Для подключения модуля используется ключевое слово USEUNIT, перед которым ставится символ комментария без пробела (или для DelphiScript ключевое слово uses). Вот как будет выглядеть подключение модуля для разных языков:

JScript, C++Script, C#Script
//USEUNIT Unit1

VBScript
‘USEUNIT Unit1

DelphiScript
uses Unit1

Пример использования:
//USEUNIT Unit1

function MyFunction2()
{
  TestIndicator();
}

Если же у вас подключены 2 модуля и в них есть функции с одинаковыми именами, можно воспользоваться полным именем для доступа к функции из конкретного модуля:

//USEUNIT Unit1

function MyFunction1()
{
  Unit1.TestIndicator();
}

Кроме того, можно подключить модуль визуально, щелкнув правой кнопкой мыши на имени модуля и выбрав пункт меню Add Unit References. Тогда директивы подключения будут вставлены в модули автоматически.

Обратите внимание на некоторые особенности использования модулей:

  1. Директива подключения (uses или USEUNIT) должна быть в самом начале модуля
  2. Для подключения нескольких модулей в DelphiScript просто перечислите их имена через запятую. Для остальных языков программирования подключайте каждый модуль отдельной строкой USEUNIT
  3. Перед символом комментария, а также между символом комментария и ключевым словом USEUNIT не должно быть пробелов
  4. Взаимное подключение модулей (т.е. Unit1 подключается в Unit2, а Unit2 подключается в Unit1) невозможно при использовании языков JScript, C++Script и C#Script
  5. В случае подключения нескольких модулей друг из друга (например, Unit1 подключается в Unit2, а Unit2, в свою очередь, подключается в Unit3), нельзя использовать более трёх подключений, иначе на самом нижнем уровне будут недоступны функции из самого верхнего уровня (т.е. в нашем примере если создать модуль Unit4, то из него будет невозможно вызвать функции из модуля Unit1)

 

 

Назад: 3.9 Отладка скриптов Содержание Дальше: 3.11 Использование фреймворков