Skip to main content
Version: Next

OBJECT SET EVENTS

OBJECT SET EVENTS ( {* ;} object ; arrEvents ; mode )

ParameterTypeDescription
*OperatorIf specified, object is an object name (string)
If omitted, object is a field or variable
objectanyObject name or "" to designate the form (if * is specified) or
Field or variable (if * is omitted)
arrEventsArray integerArray of events to set
modeIntegerActivation mode for events defined in arrEvents

This command is not thread-safe, it cannot be used in preemptive code.

Description

The OBJECT SET EVENTS command modifies, for the current process, the configuration of the form events of the form or object(s) designated by the object and * parameters.

Passing the optional * parameter indicates that the object parameter is an object name (string). If you do not pass this parameter, it indicates that the object parameter is a field or variable. In this case, you pass a field or variable reference instead of a string (field or variable object only).
To define the configuration of events for the form itself, pass the optional * parameter and an empty string "" in object: in this case, you designate the current form.

Note: If you want to modify the events of a subform related to a table, you can only use the syntax based on the object name.

In the arrEvents parameter, pass a Longint array containing the list of predefined or custom form events that you want to modify (you can use the mode parameter to specify whether the modification consists of enabling or disabling the events). To designate a predefined event to modify, you can pass, in each element of the arrEvents array, one of the following constants, found in the "Form Events" theme:

ConstantTypeValueComment
On ActivateInteger11The form’s window becomes the frontmost window
On After EditInteger45The contents of the enterable object that has the focus has just been modified
On After KeystrokeInteger28A character is about to be entered in the object that has the focus. Get edited text returns the object's text including this character.
On After SortInteger30(List box only) A standard sort has just been carried out in a list box column
On Arrow ClickInteger38(3D buttons only) The “arrow” area of a 3D button is clicked
On Before Data EntryInteger41(List box only) A list box cell is about to change to editing mode
On Before KeystrokeInteger17A character is about to be entered in the object that has the focus. Get edited text returns the object's text without this character.
On Begin Drag OverInteger46An object is being dragged
On Begin URL LoadingInteger47(Web areas only) A new URL is loaded in the Web area
On bound variable changeInteger54The variable bound to a subform is modified.
On ClickedInteger4A click occurred on an object
On Close BoxInteger22The window’s close box has been clicked
On Close DetailInteger26You left the detail form and are going back to the output form
On CollapseInteger44(Hierarchical lists and hierarchical list boxes) An element of the hierarchical list or hierarchical list box has been collapsed using a click or a keystroke
On Column MovedInteger32(List box only) A list box column is moved by the user via drag and drop
On Column ResizeInteger33(List box and 4D View Pro) The width of a column is modified by a user with the mouse
On Data ChangeInteger20Object data has been modified
On DeactivateInteger12The form’s window ceases to be the frontmost window
On Delete ActionInteger58(Hierarchical lists and List boxes) The user attempts to delete an item
On Display DetailInteger8A record is about to be displayed in a list or a row is about to be displayed in a list box.
On Double ClickedInteger13A double click occurred on an object
On Drag OverInteger21Data could be dropped onto an object
On DropInteger16Data has been dropped onto an object
On End URL LoadingInteger49(Web areas only) All the resources of the URL have been loaded
On ExpandInteger43(Hierarchical lists and hierarchical list boxes) An element of the hierarchical list or hierarchical list box has been expanded using a click or a keystroke
On Footer ClickInteger57(List boxes only) A click occurs in the footer of a list box or a list box column
On Getting FocusInteger15A form object is getting the focus
On HeaderInteger5The form’s header area is about to be printed or displayed
On Header ClickInteger42(List box and 4D View Pro) A click occurs in a column header
On Load RecordInteger40During entry in list, a record is loaded during modification (the user clicks on a record line and a field changes to editing mode)
On Long ClickInteger39(3D buttons only) A 3D button is clicked and the mouse button remains pushed for a certain lapse of time
On Losing FocusInteger14A form object is losing the focus
On Mac toolbar buttonInteger55The user clicks on the tool bar management button under Mac OS.
On Menu SelectedInteger18A menu item has been chosen
On Mouse EnterInteger35The mouse cursor enters the graphic area of an object
On Mouse LeaveInteger36The mouse cursor leaves the graphic area of an object
On Mouse MoveInteger37The mouse cursor moves at least one pixel OR a modifier key (Shift, Alt, Shift Lock) was pressed. If the event is checked for an object only, it is generated only when the cursor is within the graphic area of the object
On Open DetailInteger25The detail form associated with the output form or with the listbox is about to be opened
On Open External LinkInteger52(Web areas only) An external URL has been opened in the browser
On Outside CallInteger10The form received a POST OUTSIDE CALL call
On Picture ScrollInteger59The user scrolls the contents of a picture field or variable using the mouse or keyboard.
On Plug in AreaInteger19An external object requested its object method to be executed
On Printing BreakInteger6One of the form’s break areas is about to be printed
On Printing DetailInteger23The form’s detail area is about to be printed
On Printing FooterInteger7The form’s footer area is about to be printed
On ResizeInteger29The form window is resized
On Row MovedInteger34(List box only) A list box row is moved by the user via drag and drop
On Row ResizeInteger60(4D View Pro only) The height of a row is modified by a user with the mouse
On Selection ChangeInteger31List box & 4D View Pro: The current selection of rows or columns is modified Records in list: The current record or the current selection of rows is modified in a list form or subform Hierarchical list: The selection in the list is modified following a click or a keystroke Enterable field or variable: The text selection or the position of the cursor in the area is modified following a click or a keystroke
On TimerInteger27The number of ticks defined by the SET TIMER command has passed
On UnloadInteger24The form is about to be exited and released
On URL FilteringInteger51(Web areas only) A URL was blocked by the Web area
On URL Loading ErrorInteger50(Web areas only) An error occurred when the URL was loading
On URL Resource LoadingInteger48(Web areas only) A new resource is loaded in the Web area
On ValidateInteger3The record data entry has been validated
On VP Range ChangedInteger61The 4D View Pro cell range has changed (e.g., a formula calculation, value removed from a cell, etc.)
On Window Opening DeniedInteger53(Web areas only) A pop-up window has been blocked

It is important to note that the On Load event is not included in this list: this event cannot be defined because it has already been generated during the execution of the command.

In arrEvents, you can also pass any value corresponding to a custom event. In this case, we recommend using negative values (see the CALL SUBFORM CONTAINER command).

You use the mode parameter to set the overall processing to be carried out for the array elements. To do this, you can pass one of the following constants, found in the "Form Objects (Properties)" theme:

ConstantTypeValueComment
Disable events others unchangedInteger2All the events listed in the arrEvents array are disabled; the status of other events remain unchanged
Enable events disable othersInteger0All the events listed in the arrEvents array are enabled; all the other events are disabled
Enable events others unchangedInteger1All the events listed in the arrEvents array are enabled; the status of other events remain unchanged

The OBJECT SET EVENTS command can lead to the enabling of events that are not supported by the object (depending on its type). In this case, the events will simply be ignored.

If an object is duplicated after a call to the OBJECT SET EVENTS command, the resulting enabled/disabled configuration is also duplicated.

Example 1

Enabling three form events for a set of list box objects and disabling other events:

 ARRAY LONGINT($MyEventsOnLB;3)
 $MyEventsOnLB {1}:=On After Sort
 $MyEventsOnLB {2}:=On Column Moved
 $MyEventsOnLB {3}:=On Column Resize
 OBJECT SET EVENTS(*;"MyLB@";$MyEventsOnLB;Enable events disable others)
  // enables 3 events and disables all others

Example 2

Disabling three form events for a set of list box objects, without modifying the other events:

 ARRAY LONGINT($MyEventsOnLB;3)
 $MyEventsOnLB {1}:=On After Sort
 $MyEventsOnLB {2}:=On Column Moved
 $MyEventsOnLB {3}:=On Column Resize
 OBJECT SET EVENTS(*;"MyLB@";$MyEventsOnLB;Disable events others unchanged)
  // disables only these 3 events

Example 3

Enabling a form event for an object, without modifying the other events:

 ARRAY LONGINT($MyEventsOnLB;1)
 $MyEventsOnLB {1}:=On Column Moved
 OBJECT SET EVENTS(*;"Col1";$MyEventsOnLB;Enable events others unchanged)
  // only enables this event

Example 4

Disabling all events of the form:

 ARRAY LONGINT($MyFormEvents;0)
 OBJECT SET EVENTS(*;"";$MyFormEvents;Enable events disable others)
  // disables all events

Example 5

Disables a single event of the form without modifying the others:

 ARRAY LONGINT($MyFormEvents;1)
 $MyFormEvents{1}:=On Timer
 OBJECT SET EVENTS(*;"";$MyFormEvents;Disable events others unchanged)
  // only disables this event

See also

Form Events
OBJECT GET EVENTS