Aller au contenu principal
Version: 20 R6

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 retourne 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 retourné 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 formulaire n'est pas sélectionnée pour un événement donné, cela n'empêche pas les appels vers les méthodes objet pour les objets d 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énementMéthode objetMéthode formulaireObjets
On LoadOuiOuiTous les objets
On UnloadOuiOuiTous les objets
Sur validationOuiOuiTous les objets
On ClickedOuiOuiObjets concernés uniquement
On Double ClickedOuiOuiObjets concernés uniquement
On Before KeystrokeOuiOuiObjets concernés uniquement
On After KeystrokeOuiOuiObjets concernés uniquement
On After EditOuiOuiObjets concernés uniquement
On Getting FocusOuiOuiObjets concernés uniquement
On Losing FocusOuiOuiObjets concernés uniquement
Sur activationJamaisOuiAucun
On DeactivateJamaisOuiAucun
Sur appel extérieurJamaisOuiAucun
Sur changement pageJamaisOuiAucun
On Begin Drag OverOuiOuiObjets concernés uniquement
On DropOuiOuiObjets concernés uniquement
On Drag OverOuiJamaisObjets concernés uniquement
On Mouse EnterOuiOuiTous les objets
On Mouse MoveOuiOuiTous les objets
On Mouse LeaveOuiOuiTous les objets
On Mouse UpOuiJamaisObjets concernés uniquement
Sur menu sélectionnéJamaisOuiAucun
On Bound variable changeJamaisOuiAucun
On Data ChangeOuiOuiObjets concernés uniquement
Sur appel zone du plug inOuiOuiObjets concernés uniquement
Sur entêteOuiOuiTous les objets
On Printing DetailOuiOuiTous les objets
On Printing BreakOuiOuiTous les objets
On Printing FooterOuiOuiTous les objets
On Close BoxJamaisOuiAucun
On Display DetailOuiOuiTous les objets
On Open DetailOui (List box)OuiAucun, excepté les List box
On Close DetailOui (List box)OuiAucun, excepté les List box
Sur redimensionnementJamaisOuiAucun
On Selection ChangeOuiOuiObjets concernés uniquement
Sur chargement ligneJamaisOuiAucun
Sur minuteurJamaisOuiAucun
On ScrollOuiJamaisObjets concernés uniquement
On Before Data EntryOui (List box)JamaisObjets concernés uniquement
On Column MovedOui (List box)JamaisObjets concernés uniquement
On Row MovedOui (List box)JamaisObjets concernés uniquement
On Column ResizeOui (List box et Zone 4D View Pro)JamaisObjets concernés uniquement
On Header ClickOui (List box et Zone 4D View Pro)JamaisObjets concernés uniquement
On Footer ClickOui (List box)JamaisObjets concernés uniquement
On After SortOui (List box)JamaisObjets concernés uniquement
On Long ClickOui (Bouton)OuiObjets concernés uniquement
On Alternative ClickOui (Bouton et List box)JamaisObjets concernés uniquement
On ExpandOui (Liste hiérar. et list box)JamaisObjets concernés uniquement
On CollapseOui (Liste hiérar. et list box)JamaisObjets concernés uniquement
On Delete ActionOui (Liste hiérar. et list box)JamaisObjets concernés uniquement
On URL Resource LoadingOui (Zone Web)JamaisObjets concernés uniquement
On Begin URL LoadingOui (Zone Web)JamaisObjets concernés uniquement
On URL Loading ErrorOui (Zone Web)JamaisObjets concernés uniquement
On URL FilteringOui (Zone Web)JamaisObjets concernés uniquement
On End URL LoadingOui (Zone Web)JamaisObjets concernés uniquement
On Open External LinkOui (Zone Web)JamaisObjets concernés uniquement
On Window Opening DeniedOui (Zone Web)JamaisObjets concernés uniquement
On VP Range ChangedOui (4D View Pro Area)JamaisObjets concernés uniquement
On VP ReadyOui (4D View Pro Area)JamaisObjets concernés uniquement
On Row ResizeOui (4D View Pro Area)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.