Перейти к содержанию

Пример создания фигуры

Для примера работы с "Редактором фигур" разработаем уникальный графический элемент "Логический индикатор", который будет изменять свой цвет в зависимости от принимаемого значения активными тегами проекта.

Пример создания такого элемента также рассматривается в соответствующем видеоуроке.

Предположим, что в рамках проекта имеются два тега (tag1 и tag2), значение которых должно определять цвет индикатора.

Значение tag1 Значение tag2 Цвет
0
0
Серый
0
1
Зеленый
1
0
Желтый
1
1
Красный
Таблица состояний

Для создания нового графического объекта в редакторе мнемосхем перетащите в область редактирования компонент "Пустая фигура" из "Палитры компонентов". Нажмите на нем правой кнопкой мыши и в контекстном меню выберите "Редактировать копию".

Откроется окно "Редактор фигур". В области редактирования разместите компонент "Эллипс". Этот компонент будет служить логическим индикатором, который будет изменять цвет. Чтобы определить для фигуры все цвета из условия, нажмите "Аргументы" в пункте меню "Фигура".

Откроется окно "Редактор аргументов", в котором создайте 4 аргумента "Цвет", которые будут использоваться в качестве заливки фигуры, а также 2 переменные, принимающие значения активных тегов проекта. Для каждого из аргументов "Цвет" укажите значение цвета (либо выберите из палитры при помощи кнопки ...), укажите тип данных "Color" и выберите флаги "Видимость в свойствах". Это позволит быстро изменить определенный цвет в инспекторе свойств. Цвета можно сгруппировать.

Для аргументов "Переменная 1" и "Переменная 2" активируйте флаг "Видимость в привязках", чтобы появилась возможность связать их с тегами в проекте. После этого нажмите кнопку "Ок" в "Редакторе аргументов", чтобы сохранить изменения.

Далее откройте "Редактор привязок".

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

В редакторе напишите выражение, которое будет определять, какая заливка индикатора будет формироваться в зависимости от заданных условий, а после этого убедитесь в том, что в выражении нет ошибок.

if(${Переменная 1} == 0 and ${Переменная 2} == 0, ${Цвет 1},
if(${Переменная 1} == 0 and ${Переменная 2} == 1, ${Цвет 2},
if(${Переменная 1} == 1 and ${Переменная 2} == 0, ${Цвет 3},
${Цвет 4})))

Теперь определите "Цель", которой будут присвоены цвета. В данном случае "Целью" является элемент "Эллипс" (его необходимо выбрать из списка), для которого также укажите "Свойство" "Fill.Color" (заливка цветом).

Для подтверждения всех изменений нажмите кнопку "Ок" в "Редакторе целей", "Редакторе привязок" и "Редакторе фигур".

После этого система предложит установить значения по умолчанию для привязанных компонентов. Согласитесь, нажав кнопку "Да".

Система перейдет в режим "Редактор мнемосхем" и добавит на поле новую фигуру, переменные которой необходимо будет привязать к активным тегам проекта tag1 и tag2.

Для этого выберите фигуру левой кнопкой мыши и перейдите к её настройкам привязки в "Инспекторе свойств". Откроется окно "Связь аргументов и тегов". В нем привяжите теги проекта к аргументам "Переменная 1" и "Переменная 2", чтобы фигура получила значения тегов из проекта, обработала их в выражении и окрасилась согласно, полученному значению.

После этого закройте окно "Связь аргументов и тегов".

Для быстрой проверки работы заливки индикатора перейдите в режим симуляции и последовательно задайте соответствующие значения переменным для заливки. Зеленый цвет:

Переменная 1 = 0
Переменная 2 = 1

Желтый цвет:

Переменная 1 = 1
Переменная 2 = 0

Красный цвет:

Переменная 1 = 1
Переменная 2 = 1

Далее разверните проект на сервере и для проверки передайте соответствующие значения от активных тегов проекта.