Event Syntax

Syntax

!Name 
!Name_*
!Name_Event

Argument

Type

Description

Name

C

Name is the name of the event that is placed into a_dlg_button when the Change event occurs.
Name_*

C

Name_Event is placed into a_dlg_button when any type of ControlEvent occurs.
Name_Event

C

Name_Event is placed into a_dlg_button when it occurs.

Event

Type

Occurs When

Change

C

The value of the control has changed.
Changing

C

The value of the control is changing.
Dblclick

C

The user double-clicks on the control.
Setfocus

C

The control receives focus.
Killfocus

C

The control loses focus.

Description

The event syntax gives the programmer the opportunity to write Xbasic code in the %code% section of the Xdialog that analyzes the value of a_dlg_button and responds accordingly. Refer to Trapping the Change Event for more information about Xdialog events.

Example

Note how the value of a_dlg_button is reset to NULL after being handled.

dim events[100] as C

dim a_colors[10] as C

colors = "Red,Green,Blue,Yellow,Orange,Pink"

colors = stritran(colors,",",crlf())

item_selected = "Shirt"

a_colors.initialize(colors)

a_colors.sort("ab")

ui_dlg_box("Pick a Color",<<%dlg%

Item: [.18item_selected^={Shirt,Tie,Pants,Jacket}!item_changed];

Double click on a color. |Event Name;

[.25,10color_selected^#a_colors!color_*] |[.25,10^#events];

{text=50,1:txt};

{lf};

<15Close!close> |<15Clear Events!clear>

%dlg%,<<%code%

events[events.first_empty()] = a_dlg_button

trace.writeln(a_dlg_button)

if a_dlg_button = "Clear"

    events.clear()

    a_dlg_button = ""

else if a_dlg_button = "Close" then

    'do nothing - the dialog will close

else

    a_dlg_button = ""

end if

%code%)

Responding to Selected Events

To generate other events add "_*" to the event parameter of the control. To respond to a selected event (e.g. killfocus), trap the base event name (e.g. ul_cell), then test for the extended event name (e.g. ul_cell_killfocus).

Upper left cell |[.10ul_cell!ul_cell_*];

...

if left(a_dlg_button,7) = "ul_cell" then

    if a_dlg_button = "ul_cell_killfocus" then

        ul_cell = upper(ul_cell)

        frow = regex_merge(ul_cell, "[A-Z]","")

        fcol = asc(regex_merge(ul_cell, "[0-9]",""))-64

    end if

   a_dlg_button = ""

end if

See Also

Trapping the Change Event, Xdialog Language Directives and Operators, Xdialog Control Reference

Supported By

Alpha Five Version 5 and Above