Операции со значениями свойств графических объектов

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

  • Свойства: определяют внешний вид и функции, например, цвет, прозрачность
  • Методы: определяют действия с графическими объектами, например, сортировка таблицы
  • События: представляют собой флаги, информирующие о внешних событиях, например, о щелчке мышью, о получении фокуса и т.п. Требуемая реакция на данные события может быть определена в сценариях, запускаемых при наступлении событий.

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

Функция для чтения свойств:

getValue(string shape, string prop, anytype value [,anytype val2..]);

Подобным образом считывается и записывается в переменную «value» значение свойства ‘prop’ графического объекта «shape». В том случае, если свойство содержит два значения, необходимо добавить еще один параметр, например «scale» (масштаб) или «size» (размер).

main()

{
string col;

 getValue(«Border1″,»backCol», col);  // Считывание значения

                                       // цвета фона

                                       // прямоугольника с именем «Border1»

  DebugN(col);                         // Вывод строки в лог

}

В качестве альтернативы может использоваться сокращенная форма, принятая в C++. Для отдельного свойства синтаксис приведенной выше функции getValue() с точкой является эквивалентным.

col = Border1.backCol;

Чтобы присвоить значение графическому свойству с помощью CONTROL, используется обратная команда setValue():

setValue(string shape, string prop, anytype value [,anytype val2..]);

или

shape.prop = value;

При этом значение переменной «value» присваивается свойству «prop» графического объекта «shape». Сокращенная форма может также применяться в сценариях, выполняемых при наступлении событий данного графического объекта:

  setValue(«»,»prop»,val);

  getValue(«»,»prop»,val);

  this.prop = val;

  val = this.prop;

Оба варианта всегда полностью аналогичны. Аналогично точкам данных поддерживается чтение и запись нескольких графических свойств одновременно в рамках одной команды. В данном случае необходимо использовать полную форму с использованием «getValue()» или «setValue()».

 setValue(«», «backCol», stringVar1, «text», textVar1);

Одновременное чтение или одновременная запись нескольких свойств нескольких графических объектов возможны при использовании функций «getMultiValue()» и «setMultiValue()».

Подробная информация о функциях языка Control для работы с графическими объектами представлена в разделе «Функции для работы с графическими объектами». Состав набора свойств данного конкретного объекта зависит от типа этого объекта. Некоторые свойства присущи всем объектам.

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

this.fill = «[solid]»;

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

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