Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Шаблоны и OnInit  (Прочитано 185 раз)

Серега

  • Старожил
  • ****
  • Сообщений: 275
    • Просмотр профиля
Шаблоны и 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?
Жду вопросов и предложений.
« Изменён: 04 Ноября 2025, 15:32:16 от Simple Scada »

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 266
    • Просмотр профиля
    • Simple-Scada
Re: Шаблоны и OnInit
« Ответ #1 : 04 Ноября 2025, 15:31:48 »
Здравствуйте.

1. В любых непонятных ситуациях нужно в первую очередь проверить журнал сервера скады. С большой вероятностью в нем будут содержаться ошибки или предупреждения, которые укажут, в чем именно проблема.
2. Работа с шаблонами в скриптах рассмотрена по ссылке.

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

Серега

  • Старожил
  • ****
  • Сообщений: 275
    • Просмотр профиля
Re: Шаблоны и OnInit
« Ответ #2 : 04 Ноября 2025, 16:34:12 »
Все. Понял. Спасибо!
Внимательнее надо быть.