Events are run-time conditions that cause the ABL Virtual Machine (AVM) to respond by executing specified ABL code or by activating certain system behaviors. Events can occur directly as a result of ABL, user, or other external actions that affect the application. However events occur, the resulting executed code or activated behavior is referred to as event driven.
There are a number of factors that determine how ABL interprets events. The most important factor is the type of widget or handle receiving the event. Some widget types have default system actions in response to certain events. For example, the default system action for the A event on a fill-in widget is to insert the letter A into the fill-in at the current cursor location; however, there is no default system action for the A event on a button widget.
Different widget attribute settings determine how ABL interprets and prioritizes events. If you enable a widget for direct manipulation, direct manipulation events take priority over all other events. For example, if you write a trigger for a CHOOSE event and another for a SELECT event on a selectable widget, the AVM only executes the SELECT event trigger when you click on that widget.
This section describes the following topics for user-interface events only:
You may consider an event to be supported for all interfaces, on all operating systems, and for SpeedScript unless otherwise indicated in the reference entry. User-interface events do not apply to SpeedScript programming.
For information on the following events, see the relevant documentation:
The following descriptions refer to both compile-time and run-time behavior, features that the language generally supports and determines at compile time and actions directed by using these features at run time. When describing compile-time features or actions, this section references ABL or the ABL compiler. When describing ABL or event-driven actions taken at run time, this section references the AVM.