Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Серега от 04 Ноября 2025, 09:11:59

Название: Шаблоны и OnInit
Отправлено: Серега от 04 Ноября 2025, 09:11:59
Добрый день!
В принципе вопрос касается темы
Поясню. Вот код универсального скрипта на OnInit шаблона:
Код: (delphi)
var
  bTC:TM_Button;
  txtText:TM_Text;
begin
  txtText := GetTemplateObject('Text8022') as TM_Text;
  txtText.Text := 'Test';
  bTC := GetTemplateObject('tmp_butTC') as TM_Button;
  bTC.States[0].Caption := 'TU4' + IntToStr((Sender as TM_Button).Tag);
end.
Изменения текста видны. Изменения для кнопки нет. Можете дать пояснения или может список элементов и их свойств которые можно использовать в OnInit?
Жду вопросов и предложений.
Название: Re: Шаблоны и OnInit
Отправлено: Simple Scada от 04 Ноября 2025, 15:31:48
Здравствуйте.

1. В любых непонятных ситуациях нужно в первую очередь проверить журнал сервера скады (https://simple-scada.com/help/manual/server-journal.html). С большой вероятностью в нем будут содержаться ошибки или предупреждения, которые укажут, в чем именно проблема.
2. Работа с шаблонами в скриптах рассмотрена по ссылке (https://simple-scada.com/help/script/scriptstempl.html).

Цитировать
(Sender as TM_Button).Tag
Sender – это объект, который вызвал скрипт. Событие "OnInit" вызывается для шаблона, а не для кнопки, поэтому данная конструкция работать не будет. В строчке "bTC := GetTemplateObject('tmp_butTC') as TM_Button;" Вы уже нашли необходимую кнопку шаблона, поэтому далее нужно использовать ссылку на эту кнопку:
Код: (delphi)
bTC.States[0].Caption := 'TU4' + IntToStr(bTC.Tag);
Название: Re: Шаблоны и OnInit
Отправлено: Серега от 04 Ноября 2025, 16:34:12
Все. Понял. Спасибо!
Внимательнее надо быть.