Aller au contenu principal
Version : 21 R4 BETA

Evénements formulaire

Les événements formulaire sont des événements qui peuvent conduire à l'exécution de la méthode de formulaire et/ou de la ou des méthodes objet de formulaire. Les événements de formulaire vous permettent de contrôler le flux de votre application et d'écrire du code qui n'est exécuté que lorsqu'un événement spécifique se produit.

Dans votre code, vous contrôlez les événements à l'aide de la commande FORM Event, qui renvoie l'événement déclenché. Par exemple :

//code d'un bouton
If(FORM Event.code=On Clicked)
// faire quelque chose quand on clique sur le bouton
End if

Chaque formulaire et chaque objet actif du formulaire peut lire un ensemble prédéfini d'événements, mais seuls les événements que vous avez activés au niveau du formulaire et/ou à chaque niveau d'objet se produiront réellement.

Objet événement

Chaque événement est renvoyé sous forme d'objet par la commande FORM Event. Par défaut, il contient les propriétés suivantes :

PropriétéTypeDescription
objectNametextNom de l'objet générant l'événement - Non inclus si l'événement est déclenché par le formulaire
codeentier longValeur numérique de l'événement formulaire. Egalement retourné par la commande Form event code
DescriptiontextNom de l'événement de formulaire (par exemple "On After Edit")

Des propriétés supplémentaires sont retournées lorsque l'événement se produit sur des objets spécifiques. En particulier :

Événements et méthodes

Lorsqu'un événement formulaire se produit, 4D effectue les actions suivantes :

  • Tout d'abord, il parcourt les objets du formulaire et appelle la méthode objet pour tout objet (associé à l'événement) dont la propriété d'événement d'objet correspondante a été sélectionnée.
  • Deuxièmement, il appelle la méthode formulaire si la propriété d'événement formulaire correspondante a été sélectionnée.

Ne supposez pas que les méthodes objet, le cas échéant, seront appelées dans un ordre particulier. La règle d'or est que les méthodes objet sont toujours appelées avant la méthode formulaire. Si un objet est un sous-formulaire, les méthodes objet du formulaire liste du sous-formulaire sont appelées, suivie de la méthode formulaire du formulaire liste. 4D continue alors d'appeler les méthodes objet du formulaire parent. En d'autres termes, lorsqu'un objet est un sous-formulaire, 4D utilise la même règle pour les méthodes objet et formulaire au sein de l'objet sous-formulaire.

À l'exception des événements On Load et On Unload (voir ci-dessous), si la propriété d'événement du formulaire n'est pas sélectionnée pour un événement donné, cela n'empêche pas les appels aux méthodes des objets dont la même propriété d'événement est sélectionnée. En d'autres termes, l'activation ou la désactivation d'un événement au niveau du formulaire n'a aucun effet sur les propriétés d'événement de l'objet.

Le nombre d'objets associés à un événement dépend de la nature de l'événement.

Tableau des appels

Le tableau suivant résume la manière dont les méthodes objet et formulaire sont appelées pour chaque type d'événement :

EvénementCodeMéthode objetMéthode formulaireObjets
On Activate11JamaisOuiAucun
On After Edit45OuiOuiObjets concernés uniquement
On After Keystroke28OuiOuiObjets concernés uniquement
On After Sort30Oui (List box)JamaisObjets concernés uniquement
On Alternative Click38Oui (Bouton et List box)JamaisObjets concernés uniquement
On Before Data Entry41Oui (List box)JamaisObjets concernés uniquement
On Before Keystroke17OuiOuiObjets concernés uniquement
On Begin Drag Over46OuiOuiObjets concernés uniquement
On Begin URL Loading47Oui (Zone Web)JamaisObjets concernés uniquement
On Bound variable change54JamaisOuiAucun
On Clicked4OuiOuiObjets concernés uniquement
On Close Box22JamaisOuiAucun
On Close Detail26Oui (List box)OuiAucun, excepté les List box
On Collapse44Oui (Liste hiérar. et list box)JamaisObjets concernés uniquement
On Column Moved32Oui (List box)JamaisObjets concernés uniquement
On Column Resize33Oui (List box et Zone 4D View Pro)JamaisObjets concernés uniquement
On Data Change20OuiOuiObjets concernés uniquement
On Deactivate12JamaisOuiAucun
On Delete Action58Oui (Liste hiérar. et list box)JamaisObjets concernés uniquement
On Display Detail8OuiOuiTous les objets
On Double Clicked13OuiOuiObjets concernés uniquement
On Drag Over21OuiJamaisObjets concernés uniquement
On Drop16OuiOuiObjets concernés uniquement
On End URL Loading49Oui (Zone Web)JamaisObjets concernés uniquement
On Expand43Oui (Liste hiérar. et list box)JamaisObjets concernés uniquement
On Footer Click57Oui (List box)JamaisObjets concernés uniquement
On Getting Focus15OuiOuiObjets concernés uniquement
On Header5OuiOuiTous les objets
On Header Click42Oui (List box et Zone 4D View Pro)JamaisObjets concernés uniquement
On Load1OuiOuiTous les objets
On Load Record40JamaisOuiAucun
On Long Click39Oui (Bouton)OuiObjets concernés uniquement
On Losing Focus14OuiOuiObjets concernés uniquement
On Menu Selected18JamaisOuiAucun
On Mouse Enter35OuiOuiTous les objets
On Mouse Leave36OuiOuiTous les objets
On Mouse Move37OuiOuiTous les objets
On Mouse Up2OuiJamaisObjets concernés uniquement
On Open Detail25Oui (List box)OuiAucun, excepté les List box
On Open External Link52Oui (Zone Web)JamaisObjets concernés uniquement
On Outside Call10JamaisOuiAucun
On Page Change56JamaisOuiAucun
On Plug in Area19OuiOuiObjets concernés uniquement
On Printing Break6OuiOuiTous les objets
On Printing Detail23OuiOuiTous les objets
On Printing Footer7OuiOuiTous les objets
On Resize29JamaisOuiAucun
On Row Moved34Oui (List box)JamaisObjets concernés uniquement
On Row Resize60Oui (4D View Pro Area)JamaisObjets concernés uniquement
On Scroll59OuiJamaisObjets concernés uniquement
On Selection Change31OuiOuiObjets concernés uniquement
On Timer27JamaisOuiAucun
On Unload24OuiOuiTous les objets
On URL Filtering51Oui (Zone Web)JamaisObjets concernés uniquement
On URL Loading Error50Oui (Zone Web)JamaisObjets concernés uniquement
On URL Resource Loading48Oui (Zone Web)JamaisObjets concernés uniquement
On Validate3OuiOuiTous les objets
On VP Range Changed61Oui (4D View Pro Area)JamaisObjets concernés uniquement
On VP Ready9Oui (4D View Pro Area)JamaisObjets concernés uniquement
On Window Opening Denied53Oui (Zone Web)JamaisObjets concernés uniquement

Gardez toujours à l'esprit que, pour tout événement, la méthode d'un formulaire ou d'un objet est appelée si la propriété d'événement correspondante est sélectionnée pour le formulaire ou les objets. L'avantage de la désactivation des événements dans l'environnement de développement (à l'aide de la liste des propriétés de l'éditeur de formulaires) est la réduction du nombre d'appels vers des méthodes et par conséquent l'optimisation de la vitesse d'exécution de vos formulaires.

ATTENTION : Les événements On Load et On Unload sont générés pour les objets s'ils sont activés à la fois pour les objets et pour le formulaire auquel appartiennent les objets. Si les événements sont activés pour les objets uniquement, ils ne se produiront pas; ces deux événements doivent également être activés au niveau du formulaire.