Тема: TDMS. Как создать и вызвать "глобальную функцию"?

Перенесено из темы: TDMS. Как выполнить "Windows open" для файла?.
/Администратор./

Есть возможность создать глобальную функцию и передавать к нее несколько параметров и получать в ответ результат? А то команды есть глобальные, но только вроде с ThisObject работают.

Re: TDMS. Как создать и вызвать "глобальную функцию"?

Ах да. Есть возможность создать глобальную функцию и передавать к нее несколько параметров и получать в ответ результат? А то команды есть глобальные, но только вроде с ThisObject работают.

Немного не понятно, что имеется в виду. Глобальную или внешнюю?
Любая команда может работать с ЛЮБЫМИ объектами. Будь то ThisObject, или любой другой объект. Причём пользователю доступны только те объекты, на которые есть права на просмотр/редактирование.
ThisObject - это всего лишь тот объект, на котором выполнена команда.

Re: TDMS. Как создать и вызвать "глобальную функцию"?

> Anatoly Funikov
По-моему, глобальных функций, наподобие глобального модуля в 1С, или глобальных функций в VB / VBA, в TDMS не существует. Чему лично я был сильно удивлен.
Есть определенная последовательность действий, которую надо выполнять в сотнях случаях. Мне проще будет прописать одну функцию, и вызывать ее. Но в TDMS не увидел я что-то такой возможности. Все модули пишутся на формы и на объекты. А если некоторые операции провернуть на нескольких объектах? А если действия одни и те же, только вызываются из разных мест?
Приходилось писать один и тот же код в этих разных местах и потом отлаживать. Головняк тот еще.

Re: TDMS. Как создать и вызвать "глобальную функцию"?

По-моему, глобальных функций, наподобие глобального модуля в 1С, или глобальных функций в VB / VBA, в TDMS не существует. Чему лично я был сильно удивлен.
Есть определенная последовательность действий, которую надо выполнять в сотнях случаях. Мне проще будет прописать одну функцию, и вызывать ее. Но в TDMS не увидел я что-то такой возможности. Все модули пишутся на формы и на объекты. А если некоторые операции провернуть на нескольких объектах? А если действия одни и те же, только вызываются из разных мест?
Приходилось писать один и тот же код в этих разных местах и потом отлаживать. Головняк тот еще.

Ошибаетесь :)
Если речь идёт о функции внутри TDMS, то это возможность доступна еще (если не ошибаюсь) с момента выхода 2-й версии TDMS.
Создаётся команда. В ней пишутся функции.
Далее из любого скрипта я их могу позвать с любым кол-вом параметров + получить возвращаемые значения.
Для этого используется фунция
ThisApplication.ExecuteScript
Подробнее см. ApiHelp :)

Re: TDMS. Как создать и вызвать "глобальную функцию"?

Извиняюсь...
максимум параметров = 10шт.
ExecuteScript
Описание
Выполняет скрипт.
Возвращаемое значение
Значение Variant.  Результат выполнения скрипта. При вызове функции - результат возвращаемый функцией. Другой способ вернуть значение - через свойство ThisScript.RetValue.
Синтаксис
object.ExecuteScript (Source, [ProcName], [Param1], [Param2], [Param3], [Param4], [Param5], [Param6], [Param7], [Param8], [Param9], [Param10])
объект Объект типа TDMSApplication.
Source Обязательный. Значение Variant. Источник скрипта: команда, тип объекта, форма, выборка или код скрипта.
ProcName Значение Variant. Имя процедуры или функции для выполнения.
Param1 Необязательный. Значение Variant. Параметр процедуры или функции.
.........
Param10 Необязательный. Значение Variant. Параметр процедуры или функции.
P.S. а вообще-то это всё есть в хелпе........

Re: TDMS. Как создать и вызвать "глобальную функцию"?

Спасибо.