Множественный выбор во время выполнения программы

Множественный выбор примитивов во время выполнения программы

  • Новое свойство панели «Выбор в режиме выполнения» (по умолчанию отключено). Опция обеспечивает включение/отключение режима выбора простых графических объектов в модуле 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»]);

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *