Try OpenEdge Now
skip to main content
ABL Reference
Handle Reference : LAST-EVENT system handle
 

LAST-EVENT system handle

A handle to the last event the application received.

Syntax

LAST-EVENT [ :attribute ]
attribute
An attribute of the LAST-EVENT.

Attributes

Example

This procedure creates a variety of widgets and a frame that acts as a message area. As you move around the widgets the procedure tells you what events ABL generates.
r-lstevt.p
DEFINE VARIABLE msg_watcher  AS CHARACTER NO-UNDO FORMAT "x(50)".
DEFINE VARIABLE fi           AS CHARACTER NO-UNDO FORMAT "x(50)"
  LABEL "Fill-in".
DEFINE VARIABLE edit         AS CHARACTER NO-UNDO
  VIEW-AS EDITOR SIZE 10 BY 2.
DEFINE VARIABLE txt0         AS CHARACTER NO-UNDO FORMAT "x(75)".

DEFINE BUTTON exit LABEL "Go to Exit" AUTO-GO.
DEFINE BUTTON test LABEL "Test" SIZE 15 BY 3.

DISPLAY "Feel free to move around..." VIEW-AS TEXT SKIP
  fi SKIP(0.1)
  edit AT 2 SKIP(0.1)
  test AT 10 exit AT 50 SKIP(0.5)
  WITH FRAME f SIDE-LABELS.

DISPLAY txt0 LABEL "LAST-EVENT:LABEL FUNCTION (TYPE) > SELF:TYPE LABEL"
  WITH FRAME report 4 DOWN CENTERED TITLE "Messages".

ON RETURN, TAB, ANY-PRINTABLE, GO ANYWHERE
  RUN msgwatch. /* This procedure uses LAST-EVENT. */

ENABLE ALL WITH FRAME f.
WAIT-FOR GO OF FRAME f FOCUS fi.

PROCEDURE msgwatch.
  txt0 = LAST-EVENT:LABEL + " " + LAST-EVENT:FUNCTION + " [" +
         LAST-EVENT:EVENT-TYPE + "]-->" + SELF:TYPE + " "
  txt0 = txt0 + (IF CAN-QUERY(SELF, "LABEL") THEN
           SELF:LABEL ELSE STRING(SELF).

  DISPLAY txt0 WITH FRAME report.
  DOWN WITH FRAME report.
END PROCEDURE.

Notes

*For keyboard events, the CODE, FUNCTION, and LABEL attributes return the key code, key function, and key label of the event, respectively. For all other events the CODE attribute returns the numeric event code.
For mouse events, the FUNCTION attribute returns the names of portable mouse events and the LABEL attribute returns the names of three-button mouse events.
For high-level ABL events, the FUNCTION attribute returns the name of the event. If the ABL event is triggered by a key press, the LABEL attribute returns the key label. Otherwise, it returns the event name, as with the FUNCTION attribute.
*The EVENT-TYPE attribute returns the category of the event: KEYPRESS, MOUSE, or ABL.
*The ON-FRAME-BORDER attribute indicates whether a MOUSE event occurred in the border of a frame.
*The TYPE attribute returns the widget type, PSEUDO-WIDGET.
*The X and Y attributes return the pixel position of a MOUSE event relative to the current frame.
*For browse widgets, WIDGET-ENTER and WIDGET-LEAVE are different depending on whether the browse is editable or read-only. For editable browse widgets, WIDGET-ENTER contains the handle of the column with focus. For read-only browse widgets, WIDGET-ENTER contains the handle of the browse. For editable brows widgets, WIDGET-LEAVE contains the handle of the column the user just left. For read-only browse widgets, WIDGET-LEAVE contains the handle of the field-level widget the user just left.

See also

LIST-EVENTS function, LIST-WIDGETS function, SELF system handle, VALID-EVENT function