Приёмы работы / Разработка блоков |
Описание возможностей организации списка свойств пользовательских блоков
При создании пользовательских блоков (описано в материалах: Создание блоков с помощью блока «Субмодель», Как создавать блоки с помощью генератора кода на языке Си?, Как создавать блоки с помощью Delphi?) возникает необходимость формирования списка свойств для создаваемых блоков.
В SimInTech имеется возможность сделать добавление, отображение и использование свойств блока максимально удобным и гибким.
Рисунок 1. Окно редактирования свойств блока
ONAPPLYSCRIPT if self.prop_1 = 0 then self.InvisibleProps = ""; if (self.prop_1 = 1) or (self.prop_1 = 2) then self.InvisibleProps = "prop_2;prop_3;"; ENDSCRIPT REFRESHДанный скрипт, будучи записан в поле "Действие" некоторого свойства (например prop_1), обеспечивает скрытие свойств prop_2 и prop_3 в том случае, если prop_1 равно нулю. Префикс self перед именем свойства обозначает, что данное свойство относится к тому же объекту, которому принадлежит скрипт (т.е. к блоку). Нахождение данного скрипта внутри секции onapplyscript.dita# обспечивает его выполнение каждый раз при изменении значения свойства. Ключевое свойство REFRESH производит переинициализацию списка свойств.
ONITEMSSCRIPT dynamic_property_items = "ААА" +chr(13) + "БББ"; ENDSCRIPT ONAPPLYSCRIPT self.property2 = "Выбрано:" + self.property1; ENDSCRIPT REFRESHДанный скрипт, будучи записан в поле "Действие" свойства property1, формирует для него 2 варианта выбора (ААА и БББ). При выборе одного из вариантов происходит присвоение свойству property2 текстовое значение, зависящее от выбранного варианта. Префикс self перед именем свойства, как и в предыдущем примере, обозначает, что данное свойство относится к тому же объекту, которому принадлежит скрипт (т.е. к блоку). Скрипт внутри секции onitemsscript.dita# обеспечивает выбор из нескольких вариантов.
expanded group Параметры блока|Порядок байтовОпциональное ключевое слово expanded можно использовать в случае, если данная структура должна быть по умолчанию развернутой. Если слово expanded имеется в скрипте хотя бы одного свойства на данном уровне вложенности, то весь уровень будет по умолчанию развернутым.
Рисунок 2. Свойства блока, оформленные в виде дерева
Рисунок 3. Кнопка выполнения произвольного скрипта для свойства
ONBUTTONSCRIPT // Вот так можно подключить сюда произвольную форму визуальной настройки // которая находится в менеджере данных showcontrolform(self, "control:Регулировка параметра"); ENDSCRIPT