User interface events
- Last Updated: December 22, 2023
- 3 minute read
- OpenEdge
- Version 13.0
- Documentation
Each visual object type supports a set of user interface events. You can see a list of all these events in the AppBuilder if you go into the triggers section of the Section Editor for an object and then click the New button. Each object type first supports a list of Common Events, such as the events for a button, as shown in the next figure.
They are called common events simply because they are the events most commonly associated
with an object. Each object has its own set of these events but there is a lot of
overlap. For example, any object that can be part of the tab order of a frame has the
ENTRY event, which fires when the user tabs into the object, and
the LEAVE event, which fires when the user tabs out of that object. Any
object that can be the target of keystrokes (even an object like a button that does not
use those keystrokes to set a data value) can use the ANY-KEY or
ANY-PRINTABLE events to respond to them.
In some cases, the most common event is one that is distinctive for that object. For
example, the whole purpose of a button is for someone to click it and to have an action
result. Therefore, the button supports the CHOOSE event, which is
supported only by buttons and menu items. This is the default event that comes up in the
Section Editor when you go into the triggers section for it.
Data-representation objects, which can have actual values, support the
VALUE-CHANGED event, which fires when the user enters a new value
for the object.
To see a complete description of all the common events, see the "High-level widget events topic" in the ABL Reference.
Objects support Direct Manipulation Events, such as
CHOOSE (shown in the next figure), which fire when the user
performs an action (typically using the mouse) that involves selecting an object and
possibly moving or resizing it. Some of these events are the result of making the object
SELECTABLE, RESIZABLE, or
MOVABLE.
There is a whole host of events associated with all of the possible ways the user can make a selection with either a standard two-button mouse or a three-button mouse, such as the portable mouse events (shown in the next figure), that can map to either type of mouse.
ABL also supports a set of ten miscellaneous events that have no standard meaning or
action, but which are intended to let you associate a trigger with some event that only
happens programmatically using the APPLY statement, and which has
nothing to do with a particular user action. These are called the developer events and
are numbered U1 through U10, as shown.
These developer events have no built-in significance, but allow you to define a block of
code to execute. For example, you can specify ON U1 OF an object and
then programmatically APPLY "U1" to the object to execute the code.
Finally, you can associate a trigger with virtually any keyboard keystroke combination, by clicking the Keyboard Event button and then typing the keystroke combination, such as CTRL+X as shown.