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

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

Автор Тема: Скрипты в шаблонах  (Прочитано 1478 раз)

ZРоманB

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Скрипты в шаблонах
« : 14 Апреля 2021, 11:25:48 »
Добрый день!
Ситуация следующая имеется шаблон окна, поставил я туда кнопку и текст, в скрипте не видит текстовое поле видит только те что находятся на основном экране. Как это исправить?
Код: (delphi)
begin
  bit28.Value := SetBit(bit28.Value, 0, False);
  if bit28.AsInt = 0 then
    Text101.Text := 'Ручной';
    Text101.Color := clGray;
end.
« Изменён: 19 Августа 2021, 10:27:03 от Simple-Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1407
    • Просмотр профиля
Re: Скрипты в шаблонах
« Ответ #1 : 14 Апреля 2021, 13:31:20 »
Здравствуйте.

К объектам внутри шаблона/шаблонного окна нельзя обратиться напрямую через скрипты, т.к. шаблон и объекты в нём не являются реальными объектами. При запуске проекта на сервере, на основе шаблона будет создано множество реальных окон и объектов. Поэтому на этапе редактирования проекта ничего не известно о том, сколько и какие именно объекты будут созданы на основе шаблона (зависит от значений подстановок) и через скрипты к ним, конечно, обратиться не получится. Для шаблонов нужно использовать универсальные скрипты, при помощи которых можно получить доступ к объекту вызвавшему скрипт. Примеры универсальных скриптов можно найти по ссылке.

Судя по приведенному скрипту, Вам требуется по нажатию на кнопку изменять бит переменной и по этой же переменой изменять текст. Кнопки позволяют работать с битами напрямую, без использования скриптов - см. свойство кнопки "Бит". Поэтому, можно связать кнопку с переменной bit28 и в свойстве "Бит" указать требуемый бит, тогда кнопка будет управлять этим битом. Текст также необходимо связать с той же переменной bit28 и написать универсальный скрипт по событию OnDataChange объекта Текст. В качестве образца можно использовать пример №2 по ссылке. Если требуется что-то другое, то опишите максимально подробно, что именно требуется.
« Изменён: 19 Августа 2021, 10:26:18 от Simple-Scada »