4D v14

Événements

Accueil

 
4D v14
Événements

Événements    


 

 

En complément des manipulations expliquées dans la vidéo, il faut noter que :

Tous les objets ne disposent pas des mêmes événements : il n’est pas possible par exemple de cocher l’événement "Sur données modifiées" pour un objet bouton, car on ne peut pas "saisir" son contenu (son titre).

voici quelques exemples :

  • Sur début survol
    Lorsque la souris "entre dans l’espace aérien" d’un objet.
  • Sur données modifiées
    A la sortie d’un champ ou un variable dont le contenu a été modifié.
    On l’utilise principalement pour des contrôles de saisie, formatage (majuscules, minuscules), recherches, recalculs
  • Sur clic
    Lors du clic sur un objet (principalement les boutons, popup, menus, ...)
    Peut également être utilisé sur des objets saisissables
  • Sur gain focus
    L’objet vient de recevoir le focus (on a cliqué dessus, on est arrivé avec la touche tabulation ou on y est allé par programmation)
  • Sur chargement
    Juste avant qu’un formulaire soit affiché à l’écran ou utilisé lors d’une impression.
    C’est lors de cet événement qu’on effectue en général les initialisations.
  • Sur impression corps
    Lors de l’impression d’un enregistrement.
    Permet par exemple de valoriser des variables de cumul, concaténation...

Cette liste vous permet de comprendre cette notion d’événement. Reportez-vous à la documentation de 4D pour la description complète des événements.

Une précision importante que se posent toujours les débutants : "Dois- je cocher les événements du formulaire ou les événements des objets ?"
Tout dépend de l’endroit où vous allez écrire votre méthode.
La méthode formulaire ne devrait en théorie contenir que ce qui concerne le traitement du formulaire en globalité :

  • redimensionnement
  • appel extérieur
  • affichage ou masquage d’objets
  • ...

et les méthodes objets ce qui est spécifique à chaque objet (bouton, champ...). Ça reste un principe, mais les raisons peuvent être multiples pour en justifier la transgression.

Retenez ceci :

  • Méthode formulaire : Centralisé, traitement global, facile à maintenir.
    Risque d’être exécuté plus que nécessaire
  • Méthode objet : Spécifique, adapté, exécuté seulement quand c’est nécessaire.
    Permet facilement le portage d’un objet par simple Copier-Coller (surtout si vous utilisez les pointeurs).
    Oblige à dupliquer la méthode ou l’appel de méthode dans chacun des objets.

Il arrive qu’on déplace certains traitements sur la méthode formulaire.

Par exemple vous devez recalculer une valeur en fonction de 10 paramètres saisissables. À chaque modification de paramètre, il est nécessaire de refaire le calcul. Plutôt que de mettre la formule (ou appel de méthode) dans chacun des 10 champs paramètres, il est possible de déplacer ce calcul dans la méthode formulaire.

Dans ce cas, c’est plus simple et centralisé, par contre, il est fort probable que le recalcul sera effectué plus souvent que nécessaire, notamment lors de la modification d’un zone qui n’entre pas dans le calcul final. (NB : 4D permet de savoir quel objet a été modifié, on peut donc conditionner le calcul en fonction de cette information).

Il est important en ce qui concerne les événements de bien en connaître l'ordre d'exécution. Par exemple pour un bouton, les événements sont exécutés dans l’ordre suivant :

  • sur début survol
  • sur survol
  • sur gain focus
  • sur clic (éventuellement)
  • sur fin survol
  • sur perte focus

Un champ ou une variable sur laquelle on clique :

  • sur début survol
  • sur survol
  • sur gain focus
  • sur données modifiées (éventuellement)
  • sur perte focus
  • sur fin survol

Pour gagner du temps dans l'écriture de votre code et le fiabiliser, pensez à paramétrer les macros (fichier "macros.xml").

Vous pourrez par exemple créer une macro qui écrit à votre place le code suivant lorsque vous tapez "$evt" dans votre méthode :

 $evt:=Evenement formulaire
 Au cas ou
    :($evt=Sur données modifiées)
 
    :($evt=Sur chargement)
 
 Fin de cas

Pendant votre phase d'apprentissage de 4D je vous conseille de mettre vos méthodes dans vos objets, vous aurez plus de souplesse pour corriger. Ensuite, commencez par utiliser des appels de méthodes génériques et enfin quand tout fonctionne correctement, voyez ce que vous pouvez déplacer de vos méthodes objets vers votre méthode formulaire ou méthodes projets et enfin passer des pointeurs.

Pour aller plus loin :
Analysez bien le fonctionnement des événements car ils vous permettront de comprendre précisément à quel moment s'exécute votre programmation. Vous y trouverez aussi de nombreuses idées pour des mises en oeuvre performantes en utilisant par exemple les événements :

  • sur glisser
  • sur déposer
  • sur nouvelle sélection
  • les trois ’sur survol’
et bien évidemment les grands classiques
  • sur clic
  • sur double clic
  • sur clic long
  • etc...

 
 

 
PROPRIÉTÉS 

Produit : 4D
Thème : Événements
Nom intl. : Events

 
UTILISATION DE L'ARTICLE

Autoformation ( 4D v13)
Autoformation ( 4D v14)