Спасибо, у меня используются и глобальные модули и процедуры.Они используются почти в каждом проекте, здесь главное как они используются. Практически во всех проектах полученных нами от пользователей скрипты написаны очень плохо. К сожалению, написать один общий пример хорошего кода, который подошел бы для всех проектов - невозможно, т.к. скрипты в разных проектах сильно отличаются. Базовые скрипты описаны по этой ссылке (https://simple-scada.com/help/script/sample-scripts.html). Простой пример сокращения повторяющегося кода описан по ссылке (https://simple-scada.com/help/script/code-reduction.html?q=%D0%BF%D0%BE%D0%B4%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D0%B4%D1%83%D1%80%D1%8B). Также часто пользователи дублируют скрипты считая их уникальными, когда они такими не являются. Примитивный пример - построение отчетов. Если есть 30 отчетов и 30 кнопок для построения соответствующего отчета, то пользователи обычно пишут 30 скриптов по OnClick, в каждом вызывается один и тот же код построения, отличается только имя отчета. Но можно было бы написать один скрипт, который брал бы имя отчета из свойства "Подсказка" кнопки. Если свойство "Подсказка" занято, то использовать свойство "Тег" и в зависимости от значения строить разные отчеты.
пользователи обычно пишут 30 скриптов по OnClick, в каждом вызывается один и тот же код построения, отличается только имя отчета. Но можно было бы написать один скрипт, который брал бы имя отчета из свойства "Подсказка" кнопки.Но при наличии универсальной процедуры все равно на onClick надо написать код для вызова этой процедуры. Разве не так?
var
aReport: TM_Report;
begin
if not (Sender is TM_Object) then Exit; // если скрипт вызван не объектом, то прерываем выполнение
aReport := ReportBuild(Sender.Hint); // строим отчет(имя задается в свойстве "Подсказка" кнопки)
aReport.View(GetClientName); // открываем для просмотра на клиенте
end.
Данный скрипт можно назначить на событие OnClick множеству кнопокЧто значит "назначить скрипт"? Этот текст надо продублировать для каждой из множества кнопок? Или есть возможность сделать один раз этот скрипт, а в событии кнопки на него ссылаться?
Или есть возможность сделать один раз этот скрипт, а в событии кнопки на него ссылаться?Да. Нужно создать скрипт, затем выделить объект, в инспекторе объектов (https://simple-scada.com/help/manual/object-inspector.html) перейти на вкладку "События" и для события OnClick выбрать ранее созданный скрипт (создавать новый скрипт не нужно). Далее, проделать те же действия для других кнопок. В итоге будет использоваться один универсальный скрипт, который будет привязан к множеству объектов.