<< Click to Display Table of Contents >> Сложный вызов всплывающего окна со скриптами |
|
Предположим у нас есть несколько однотипных объектов на экране, у каждого объекта есть несколько парамеров. По нажатию на объект мы хотим видеть всплывающее окно с информацией о состоянии (значении) тегов и иметь возможность задавать значения некоторым тегам прямо во всплывающем окне.
1. Создадим сложный групповой объект, назовем его - VE01, который состоит из примитивных объектов - Прямоугольник, Эллипс, Полигон, Изображение, Текст/ПолеВвода и поверх этих объектов мы разместили прозрачную Кнопку - CallPopup:
Изображение готового объекта
|
Состав группового объекта
|
Как сгруппировать объект вы можете узнать в главе - Пример: Как создать новый графический объект.
2. Создадим теги и привяжем их к объектам из группы:
Чтобы упростить масштабирование этого проекта и иметь возможность быстрее скопировать эту группу тегов для следующего аналогичного объекта, мы связали имя тегов с группой, используя ключевое слово {group}. Пример:
3. Мы хотим вызвать всплывающий экран, щелкнув на этот групповой объект (щелкнув по прозрачной кнопке - CallPopup, если быть точнее) и отображать все свойства в соответствующих полях.
Создадим всплывающее окно с именем FbMotorAOVentil (для этого нужно создать новый экран и указать тип экрана - "Всплывающий"), которое также является групповым объектом.
Всплывающее окно
|
Состав всплывающего окна
|
4. Создадим теги для этого всплывающего окна:
5. Чтобы иметь возможность отправлять некоторую информацию из группового объекта во всплывающее окно, создадим пользовательские свойства (пользовательские свойства задаем для объекта "Кнопка", которая и вызывает всплывающее окно):
6. Теперь, донастроим вызов всплывающего окна. В Свойствах "Кнопки", которая вызывает всплывающее окно во вкладке "Контроль" в поле "Команды и аргументы" передадим аргументы (которые мы задали как пользовательские свойства в пункте выше):
7. Теперь создадим скрипт, который будет использовать аргументы, которые мы записали в пункте выше и которые будут использоваться при открытии нашего всплывающего окна. Создади скрипт с именем CallPopup с типом "Экран" на языке ST и исполнением "onOpen":
Напишем скрипт:
После того как записали скрипт обязательно запустим его путем нажатия кнопки на панели инструментов:
8. Создадим еще один скрипт, чтобы передавать изменения во всплывающих тегах в теги группового объекта (если во всплывающем окне мы меняем значение тега, то оно будет передаваться в тег объекта), и наоборот, чтобы уловить изменения значения тега группового объекта и установить значение всплывающих тегов (если значение тега объекта изменилось, когда всплывающее окно открыто, значение во всплывающем окне также изменится):
Напишем скрипт:
После того как записали скрипт обязательно запустим его путем нажатия кнопки на панели инструментов:
9. Привяжем скрипты к нашему всплывающему окну:
|
10. Итак, мы создали всплывающее окно (Одно для всех объектов), в которое передаются значения тегов и из которого можно менять значения тегов для объекта. Групповой объект VE01 у нас также настроен с помощью пользовательских свойств. Теперь продублируем объект столько раз, сколько нам нужно, и в пользовательских свойствах изменим значения.
11. Запустим имитацию, чтобы проверить настройки:
Вы можете скачать проект из примера здесь.