Множественный выбор примитивов во время выполнения программы
- Новое свойство панели «Выбор в режиме выполнения» (по умолчанию отключено). Опция обеспечивает включение/отключение режима выбора простых графических объектов в модуле VISION.
- Новый атрибут простого объекта «Выбираемый» (только в GEDI). Определяет возможность выбора графического объекта во время выполнения программы.
- Новый атрибут простого объекта «selected» (в языке CONTROL. Поддерживается чтение и запись). Указывает состояние выделения. Может изменяться только в том случае, если объект является выбираемым.
- Новое событие простого объекта «SelectionChanged». Это событие инициируется всегда при изменении свойства «selected» объекта (либо пользователем при выборе объекта, либо программно сценарием на языке CONTROL при изменении значение атрибута «selected«).
- Новый атрибут объекта «shapeType» (в языке CONTROL. Поддерживает только чтение). Возвращает строку, соответствующую типу графического объекта.
Полный перечень:
«PRIMITIVE_TEXT» (простой текст), «LINE» (линия),«RECTANGLE» (прямоугольник),«ELLIPSE» (эллипс),«ARC» (сектор),«POLYGON» (полигон),«PUSH_BUTTON» (кнопка),»TEXT_FIELD» (текстовое поле),«CLOCK» (часы),«SELECTION_LIST» (список выбора),«RADIO_BOX» (переключатель),«CHECK_BOX» (селектор),«SPIN_BUTTON» (счетчик),«COMBO_BOX» (выпадающий список),«TREND» (тренд),«TABLE» (таблица),«CASCADE_BUTTON» (кнопка с выпадающим меню),«BAR_TREND» (столбчатый тренд),«TAB» (вкладка),«ACTIVE_X»,«FRAME» (рамка),«PIPE» (трубопровод),«DP_TREE» (дерево точек данных),«TEXT_EDIT» (многострочный текстовый редактор),«SLIDER» (ползунок),«THUMB_WHEEL» (колесо прокрутки),«PROGRESS_BAR» (индикатор выполнения),«TREE» (иерархический список),«DPTYPE» (дерево типов точек данных),»LCD» (цифровой дисплей (ЖК-индикатор)),»ZOOM_NAVIGATOR» (навигатор с масштабированием),»EMBEDDED_MODULE» (встроенный модуль). |
Внешние виджеты показывают собственное специальное имя типа. Атрибут «shapeType» также выводится в строке состояния графического редактора GEDI при выделении соответствующего графического объекта.
- Новая функция CONTROL:
dyn_string getShapes(string moduleName = myModuleName(),
string panelName = myPanelName(),
string attribute = «selected»,
anytype value = true)
Данная функция выдает список имен графических объектов (или RefName.ShapeName, если графический объект находится внутри PanelRef (панели-ссылки)), выбранных в соответствии с указанными аргументами выбора:
moduleName: Имя модуля, в котором открыта панель. По умолчанию задан элемент «myModuleName()».
panelName: Имя панели. По умолчанию задано «myPanelName()».
attribute: Простое имя атрибута графического объекта, например, «foreCol», «selected», «visible».
Могут использоваться все атрибуты, возвращающие простой тип данных («position», например, использовать нельзя );
по умолчанию: «selected».
value: Значение, которое указывает, что атрибут должен включить графический объект в итоговый список.
По умолчанию имеет значение «TRUE».
ПРИМЕР
Получение списка всех графических объектов с цветом фона {255,255,255} с последующим их выбором:
main()
{
dyn_string shapes;
shapes = getShapes(myModuleName(), myPanelName(),
«backCol», «{255,255,255}»);
for (int i = 1; i <= dynlen(shapes); i++)
{
setValue(shapes[i], «selected», true);
}
}
ПРИМЕР
Получение списка всех графических объектов типа «TEXT_FIELD»:
dyn_string shapes = getShapes(myModuleName(), myPanelName(),
«shapeType», «TEXT_FIELD»);
- Для того, чтобы обеспечить доступ к $-параметрам определенной PanelRef (панели-ссылки), панель-ссылка содержит атрибут «dollars» (только чтение). В результате получается сопоставление, в котором ключом является имя $-параметра,
а значением – значение $-параметра. Например:
mapping params;
getValue(«Ref1», «dollars», params);
DebugN(params[«$DP»]);