События графических объектов

«КАСКАД Цифра» предоставляет возможность создания сценариев, которые выполняются при наступлении соответствующих событий графических объектов.

Поддерживается следующий набор стандартных событий:

СобытиеДействие, приводящее к наступлению события.
ActivatedНажатие пользователем клавиши Ввод (Enter) или двойной щелчок по дате в виджете календаря.
AcknowledgeКвитирование
ClickedЩелчок левой кнопкой мыши.В том случае, если также определен сценарий для события «MousePressed», то данный сценарий выполняется первым.
ChangeИзменение положения ползунка.
ChangedВыбор элемента из списка выбора.
CommandСобытие текстового поля. Выполняется при нажатии клавиши Ввод (Enter).
CurrentPageChangedВыбор другого (относительно отображаемого в текущий момент) месяца или года в виджете календаря. Новые год и месяц передаются в качестве параметров.
CursorPositionChangedИзменение положения курсора в документе текстового редактора.
CurveDataErrorКаждый возврат функцией «dpGetPeriod» ошибки, относящейся к любому из элементов точек данных (доступно для: Тренда).
CurvesScaledCurvesScaled(dyn_string curves);Событие наступает по истечении тайм-аута 500 мс. При помощи «dyn_string» передаются все имена кривых тренда, которые были изменены (при перемещении, масштабировании и т.д.).
DoubleClickedДвойной щелчок левой кнопкой мыши.В том случае, если определен сценарий для события «MousePressed» / «MouseReleased», то данный сценарий выполняется первым.
DragDropСобытие наступает при сбросе информации на объект, при этом ранее при помощи функции «dropAccept()» в систему было передано сообщение о готовности приема объектом перетаскиваемой информации. Более подробная информация приведена в разделе «Перетаскивание во время выполнения программы«.
DragEnterСобытие наступает только в том случае, если объект готов принимать перетаскиваемую информацию (в редакторе свойств значение свойства «Принимает перетаскиваемые объекты» (Accept Drops) определено как «TRUE»), и значение свойства «Разрешен» (Enabled) объекта равняется «TRUE».  При этом графический объект должен определить свою готовность принимать перетаскиваемую информацию. Более подробная информация приведена в разделе «Перетаскивание во время выполнения программы«.
DragStartСобытие наступает только в том случае, если в редакторе свойств свойству «Перетаскиваемый» было присвоено значение «TRUE». Более подробная информация приведена в разделе «Перетаскивание во время выполнения программы«.Перетаскивание во время выполнения программы.ВНИМАНИЕ:По умолчанию возможно перетаскивание ячеек таблицы на объект (например, на Текстовое поле). Предпосылкой является неизменность сценария обработки события «DragStart». В случае добавления и последующего даже немедленного удаления какой-либо строки кода перетаскивание ячеек будет невозможно. Для восстановления работоспособности перетаскивания необходимо удалить весь сценарий, включая «main{}».
GestureTriggeredСобытие наступает при жесте скольжения (движение одним пальцем) по объекту.
HeaderClickedСобытие наступает при щелчке левой кнопкой мыши по заголовку таблицы.
InitializeСобытие наступает при открытии.
KeyboardFocusOutСобытие наступает при потере фокуса.
KeyboardFocusInСобытие наступает при получении фокуса.
LangChangedСобытие наступает при изменении языка.
ModificationChangedModificationChanged(bool mod)Данное событие наступает при изменении статуса изменения документа в текстовом редакторе. В том случае, если mod = TRUE, то документ был изменен. В противном случае статусу изменения присваивается значение «unmodified» (без изменений).
MousePressedСобытие наступает при нажатии левой кнопкой мыши.Т.е. сценарий запускается при каждом нажатии кнопкой мыши. При этом не имеет значения, будет ли кнопка отпущена позднее.Если курсор мыши при нажатой кнопке мыши предварительно переместить за границу кнопки (или простого графического объекта), событие будет наступать при каждом перемещении курсора мыши в пределы объекта.
MouseReleasedСобытие наступает при прекращении нажатия кнопки мыши по объекту.При этом сценарий запускается либо при отпускании кнопки мыши, либо при перемещении курсора мыши при нажатой кнопке мыши за пределы кнопки (или простого графического объекта).
MouseOverСобытие наступает при перемещении курсора мыши в пределы объекта. ПРИМЕЧАНИЕСобытие «MouseOver» включает в себя логический параметр «enter», значение которого устанавливается равным «TRUE » при перемещении курсора мыши в пределы объекта и «FALSE» при перемещении курсора мыши за пределы объекта. Подобная функциональность позволяет пользователю, например, задавать различные цвета фона в зависимости от положения мыши.
OnButtonDblClkСобытие наступает при двойном щелчке левой кнопкой мыши по Дереву точек данных.
OnLButtonClkСобытие наступает при щелчке левой кнопкой мыши по Дереву точек данных.
OnDpTypeChangingOnDpTypeChangedСобытие «OnDpTypeChanging» наступает при использовании Дерева точек данных и вызове функции «createDpType()» (то есть при создании типа точек данных). Событие «OnDpTypeChanged» наступает также при вызове редактора «dpTypeEditor()» и создании типа точек данных (при нажатии кнопки «ОК»).
ResizedСобытие наступает при изменении размера объекта.
ReturnPressedСобытие наступает при нажатии клавиши Ввод (Enter) при редактировании документа в Текстовом редакторе.
RightMousePressedНажатие правой кнопкой мыши.
ScrolledC целью обеспечения опроса и вывода на экран только тех данных, которые могут быть видны пользователю в настоящий момент, а также во избежание объемных запросов, обработка которых может потребовать длительного времени, реализовано событие прокрутки («Scrolled»). При этом данные, соответствующие некоторой области виджета «Таблица», будут запрашиваться только при прокрутке до данной области, но не ранее. Событие наступает через 0.3 секунды после прекращения прокрутки таблицы. Необходимо обратить внимание на то, что таблица должна быть заполнена строками.
SelectionChangedСобытие наступает при смене вкладки или при изменении значения атрибута «selected» простого объекта (либо при выборе объекта пользователем, либо программно путем изменения значения атрибута «selected» при помощи сценария на языке CTRL. См. «Множественный выбор во время выполнения программы«).или всякий раз при изменении набора выбранных строк, например, при помощи клавиатуры. Необходимо обратить внимание на то, что для использования события «SelectionChanged» следует предварительно выполнить следующие настройки таблицы:TABLE1.tableMode(TABLE_SELECT_MULTIPLE);TABLE1.selectByClick(3);
SlideПеремещение ползунка.
TextChangedДанный тип событий доступен только для графических объектов «Текстовый редактор» и «Текстовое поле«. Событие наступает при каждом вводе каких-либо данных пользователем.Для получения доступа к новому тексту в рамках обработки данного события необходимо использовать параметр «newText».
TabCloseRequestedДанный тип событий доступен только для виджета вкладки. Событие наступает при закрытии вкладки.
WheelWheel(mapping event)Событие «Wheel» может быть использовано для задания реакции на действия с колесом мыши. Данное событие поддерживается только для панели. Пример использования события представлен здесь.При возникновении события может быть получена следующая информация:КлючЗначенияtype»Wheel»buttonsMOUSE_LEFT
MOUSE_RIGHT
MOUSE_MIDDLEОтражает состояние кнопок в момент возникновения события. Значение «buttons» является результатом операции логического сложения (ИЛИ) значений элементов MOUSE_* , представленных выше.buttonsAsString“LeftButton”
“RightButton”
“MiddleButton”Наименования кнопок, которые были нажаты в момент возникновения события, в виде единой последовательности символов (string). В том случае, если на момент возникновения события были нажаты несколько кнопок, их наименования разделяются символом «|».modifiersKEY_SHIFT
KEY_CONTROL
KEY_ALT
KEY_METAОтражает состояние клавиш-модификаторов на момент возникновения события. Значение «modifiers» является результатом операции логического сложения (ИЛИ) значений элементов KEY_* , представленных выше.modifiersAsString”ShiftModifier”
”ControlModifier”
”AltModifier”
“MetaModifier”Наименования клавиш клавиатуры, которые были нажаты в момент возникновения события, в виде единой последовательности символов (string). В том случае, если на момент возникновения события были нажаты несколько клавиш, их наименования разделяются символом «|».localPosОтносительная позиция X, Y на панели.globalPosПозиция X, Y на экране.angleDeltaВращение колеса мыши X, Y.Соответствует углу поворота в 1/8 градуса. Положительное значение соответствует вращению от пользователя. Отрицательное значение соответствует вращению к пользователю. Большинство компьютерных мышей имеют шаг угла поворота колеса 15 градусов, что соответствует 120 восьмых градуса.
120 единиц * 1/8 = 15 градусов.isSynthesizedВозвращает TRUE, если событие было вызвано событием «touch» (касание).
  • События, которые наступают при открытии панели во время инициализации (Initialize) .
  • События, вызываемые пользователем (например, щелчок кнопкой мыши).
  • События, вызываемые изменением положения ползунка (Change).
  • События, вызываемые изменением положения фокуса (KeyboardFocusIn, KeyboardFocusOut).
  • События алармов, наступающие при изменении статуса алармов.
  • События, вызываемые сменой вкладки (SelectionChanged).
  • События, которые наступают при закрытии панелей (Terminate).
  • События, которые наступают при изменении языка (LangChanged).
  • События, которые наступают при перемещении курсора в пределы объекта.

ВНИМАНИЕ

Несмотря на то, что для кнопки существует событие «DoubleClicked», данное событие наступает и при одиночном, и при двойном щелчке кнопкой мыши. Для таблиц, переключателей и селекторов рекомендуется использование событий «Clicked» или «DoubleClicked».

ЗначокПРИМЕЧАНИЕ

В сценариях обработки событий «KeyboardFocusIn» не следует использовать функцию «setInputFocus()».

Рисунок: События объекта типа «Прямоугольник»

Примечание

Присвоение сценария событию типа «Acknowledge» (Квитирование) возможно только с использованием мастеров. В связи с тем, что данный сценарий используется для алармов, он обязан иметь определенный формат. В этой связи его редактирование при помощи редактора сценариев невозможно.

ЗначокПРИМЕЧАНИЕ

При наличии 2 одновременно выполняемых сценариев, одним из которых является сценарий события «KeyboardFocusOut» (например, сценарий «KeyboardFocusOut» графического объекта, который теряет фокус, и сценарий «Clicked» графического объекта, который получает фокус), «КАСКАД Цифра» обеспечивает сначала запуск сценария «KeyboardFocusOut».

ПРИМЕЧАНИЕ

В сценариях «KeyboardFocusOut» и «KeyboardFocusIn» не допускается использование функций, которые изменяют значения свойств «Видимый» и «Разрешен» объекта, а также фокус объекта.

ВНИМАНИЕ

Графические объекты Выпадающий список и Список выбора не поддерживают тип событий «Clicked», однако поддерживают тип событий «Changed».

Пример использования события «Wheel»

Данный пример демонстрирует использование события «Wheel» при масштабировании панели.

main(mapping event)
{
 float factor = (event.angleDelta.y / 120.0) * 1.1;
 if ( factor > 0.0 )
   panelZoomIn(myModuleName(), factor, event.localPos);
 else
   panelZoomOut(myModuleName(), -factor, event.localPos);
}

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

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