Сложный вызов всплывающего окна со скриптами

<< Click to Display Table of Contents >>

Навигация  Примеры > Вызов всплывающего окна >

Сложный вызов всплывающего окна со скриптами

Previous pageReturn to chapter overviewNext page

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

1. Создадим сложный групповой объект, назовем его - VE01, который состоит из примитивных объектов - Прямоугольник, Эллипс, Полигон, Изображение, Текст/ПолеВвода и поверх этих объектов мы разместили прозрачную Кнопку - CallPopup:

 

Изображение готового объекта

 

ventgroup

Состав группового объекта

 

clip0039

 

 

Как сгруппировать объект вы можете узнать в главе - Пример: Как создать новый графический объект.

 

2. Создадим теги и привяжем их к объектам из группы:

 

callpopuptags

 

Чтобы упростить масштабирование этого проекта и иметь возможность быстрее скопировать эту группу тегов для следующего аналогичного объекта, мы связали имя тегов с группой, используя ключевое слово {group}. Пример:

 

tagexamplecallpopup

 

3. Мы хотим вызвать всплывающий экран, щелкнув на этот групповой объект (щелкнув по прозрачной кнопке - CallPopup, если быть точнее) и отображать все свойства в соответствующих полях.

Создадим всплывающее окно с именем FbMotorAOVentil (для этого нужно создать новый экран и указать тип экрана - "Всплывающий"), которое также является групповым объектом.

 

Всплывающее окно

 

popupwindowcall

Состав всплывающего окна

 

clip0040

 

4. Создадим теги для этого всплывающего окна:

 

popuptags

 

5. Чтобы иметь возможность отправлять некоторую информацию из группового объекта во всплывающее окно, создадим пользовательские свойства (пользовательские свойства задаем для объекта "Кнопка", которая и вызывает всплывающее окно):

 

clip0041

callpopupudproperties

 

6. Теперь, донастроим вызов всплывающего окна. В Свойствах "Кнопки", которая вызывает всплывающее окно во вкладке "Контроль" в поле "Команды и аргументы" передадим аргументы (которые мы задали как пользовательские свойства в пункте выше):

 

callpopupcontrol

 

7. Теперь создадим скрипт, который будет использовать аргументы, которые мы записали в пункте выше и которые будут использоваться при открытии нашего всплывающего окна. Создади скрипт с именем CallPopup с типом "Экран" на языке ST и исполнением "onOpen":

 

popupwindowcallfirst

 

Напишем скрипт:

 

popupscript1

После того как записали скрипт обязательно запустим его путем нажатия кнопки на панели инструментов: clip0048

 

8. Создадим еще один скрипт, чтобы передавать изменения во всплывающих тегах в теги группового объекта (если во всплывающем окне мы меняем значение тега, то оно будет передаваться в тег объекта), и наоборот, чтобы уловить изменения значения тега группового объекта и установить значение всплывающих тегов (если значение тега объекта изменилось, когда всплывающее окно открыто, значение во всплывающем окне также изменится):

 

popupchange

Напишем скрипт:

 

otherscriptpopup

После того как записали скрипт обязательно запустим его путем нажатия кнопки на панели инструментов: clip0048

 

9. Привяжем скрипты к нашему всплывающему окну:

 

clip0042

 

popupscriptcollection

 

10. Итак, мы создали всплывающее окно (Одно для всех объектов), в которое передаются значения тегов и из которого можно менять значения тегов для объекта. Групповой объект VE01 у нас также настроен с помощью пользовательских свойств. Теперь продублируем объект столько раз, сколько нам нужно, и в пользовательских свойствах изменим значения.

11. Запустим имитацию, чтобы проверить настройки:

 

callpopupcomplex1

 

Вы можете скачать проект из примера здесь.