A handle to the object or widget associated with the currently executing user-interface trigger or event procedure.
The specific attributes available depend on the type of the object or widget. You can determine the object or widget type by examining the SELF:TYPE attribute.
The following example uses the SELF handle to display the starting and ending positions of an object you move:
r-self.p
DEFINE BUTTON b_quit LABEL "Quit"
TRIGGERS:
ON CHOOSE QUIT.
END.
DEFINE VARIABLE x AS CHARACTER NO-UNDO INITIAL "MOVE ME".
DEFINE FRAME move
x NO-LABEL
WITH SIZE 80 BY 10 TITLE "Move/Resize Widget".
ASSIGN
x:MOVABLE = TRUE
x:SELECTABLE = TRUE.
DEFINE FRAME butt-frame
b_quit
WITH CENTERED ROW SCREEN-LINES - 1.
ON END-MOVE OF x IN FRAME move
DISPLAY
SELF:FRAME-ROW
SELF:FRAME-COL
WITH FRAME end-info CENTERED ROW 14 TITLE "End Position".
ON START-MOVE OF x IN FRAME move
DISPLAY
SELF:FRAME-ROW
SELF:FRAME-COL
WITH FRAME info CENTERED ROW 12 TITLE "Start Position".
ENABLE b_quit WITH FRAME butt-frame.
DISPLAY x WITH FRAME move.
ENABLE x WITH FRAME move.
WAIT-FOR CHOOSE OF b_quit IN FRAME butt-frame FOCUS x.
|
DEFINE VARIABLE fname AS CHARACTER NO-UNDO FORMAT "x(30)" LABEL "Name". DEFINE FRAME FillFrame fname WITH SIDE-LABELS. ON ENTRY OF fname IN FRAME FillFrame DO: APPLY "ENTRY" TO SELF. SELF:AUTO-ZAP = TRUE. END. |
This makes SELF = FOCUS, which allows the new AUTO-ZAP value to take effect. For more information on the AUTO-ZAP attribute, see the Handle Attributes and Methods Reference.