APPELER SUR EVENEMENT

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 5


APPELER SUR EVENEMENT (méthodeEvén{; nomProcess})

ParamètreTypeDescription
méthodeEvénAlphaMéthode d'événement à appeler ou
Chaîne vide pour arrêter l'interception
des événements
nomProcessAlphaNom de process

Description

APPELER SUR EVENEMENT installe la méthode dont le nom est passé dans méthodeEvén comme méthode de gestion des événements.

Conseil : Cette commande nécessite un niveau de connaissances avancé en programmation. Généralement, vous n'avez pas besoin d'appeler APPELER SUR EVENEMENT pour traiter les événements. Lorsque vous utilisez des formulaires, 4e Dimension gère pour vous les événements et les retourne aux formulaires et objets appropriés.

Astuce : La version 6 a introduit de nouvelles commandes telles que POSITION SOURIS, Majuscule enfoncee, etc., pour récupérer des informations sur les événements. Ces commandes, dans une certaine mesure, peuvent être appelées depuis les méthodes objet pour traiter les informations dont vous avez besoin. Elles peuvent ainsi vous épargner l'écriture d'un algorithme basé sur une structure du type APPELER SUR EVENEMENT.

La portée de cette commande est la session de travail. Par défaut, la méthode est exécutée dans un process local séparé. Vous ne pouvez avoir qu'une méthode de gestion d'événement à la fois. Pour désinstaller une méthode de gestion d'événement, appelez de nouveau APPELER SUR EVENEMENT et passez une chaîne vide dans méthodeEvén.

Comme la méthode de gestion d'événement tourne dans process séparé, méthodeEvén est toujours active, même si aucune méthode 4e Dimension n'est en cours d'exécution. Après l'installation, 4e Dimension appelle la méthode méthodeEvén dès qu'un événement survient. Un événement peut être un clic souris ou la frappe d'une touche.

Le paramètre optionnel nomProcess permet de donner un nom au process créé par APPELER SUR EVENEMENT. Si nomProcess commence par le symbole dollar ($), nomProcess est un process local, ce dont vous aurez généralement besoin. Si vous ne passez pas le paramètre nomProcess, 4D crée par défaut un process local nommé $Gestionnaire d'événement.

ATTENTION : Soyez prudent lors de l'écriture d'une méthode de gestion d'événement. N'appelez pas de commande générant un événement, sinon vous risquez de ne plus pouvoir sortir de la méthode. La combinaison de touches Ctrl+Maj+Retour Arrière (sous Windows) ou Commande+Option+Maj+Control+Retour Arrière (sous Mac OS) convertit le process d'événement en un process normal, ce qui signifie que la méthode ne reçoit plus systématiquement tous les événements qui surviennent. Cette combinaison vous permet de sortir d'une méthode de gestion d'événement devenue incontrôlable.

Dans la méthode de gestion d'événement, vous pouvez lire les variables système suivantes : MouseDown, KeyCode, Modifiers, MouseX, MouseY et MouseProc. Notez que ces variables sont des variables process. Leur portée est donc le process de gestion d'événements. Copiez-les dans des variables interprocess si vous souhaitez que leurs valeurs soient disponibles dans un autre process.

La variable système MouseDown contient 1 s'il y a eu un clic souris, 0 sinon.

La variable système KeyCode contient le code ASCII du caractère tapé au clavier, ou le code d'une touche de fonction. Référez-vous à la section Codes ASCII qui liste les codes ASCII utilisés par 4D, ainsi qu'à la section Codes des touches de fonction. 4D fournit des constantes prédéfinies pour les principaux codes ASCII et touches de fonctions. Vous pouvez les visualiser à l'aide la fenêtre de l'Explorateur, dans les thèmes correspondants.

La variable système Modifiers permet de savoir si les touches suivantes étaient enfoncées lorsqu'un événement s'est produit :

Plate-formeModifiers
WindowsMaj, Verrouillage des majuscules, Alt, Ctrl, Bouton droit de la souris
MacintoshMaj, Verrouillage des majuscules, Option, Contrôle, Commande

Notes

- La touche Windows Alt est l'équivalent de la touche Macintosh Option.

- La touche Windows Ctrl est l'équivalent de la touche Macintosh Commande.

- La touche Macintosh Control n'a pas d'équivalent sous Windows. Cependant, un clic bouton droit de la souris sous Windows est l'équivalent de Control+clic sur Macintosh.

Isolément, les touches "modifiers" ne génèrent pas d'événement. Une autre touche ou le bouton de la souris doit également être enfoncé(e). La variable Modifiers est une variable de type Entier long (4 octets), qui doit être considérée comme un tableau de 32 bits. 4D fournit des constantes prédéfinies exprimant la position ou le masque des bits pour tester le bit correspondant à chaque touche de modification. Lorsque, par exemple, vous voulez détecter si la touche Majuscule a été enfoncée pour l'événement, vous pouvez écrire :

   Si (Modifiers ?? Bit touche majuscule)  ` Si la touche Majuscule était enfoncée

ou :

   Si ((Modifiers & Masque touche majuscule)#0) ` Si la touche Majuscule était enfoncée

Note : Sous Windows, la valeur 128 est ajoutée à la variable Modifiers si le bouton (gauche) de la souris est relâché au moment de l'événement.

Les variables systèmes MouseX et MouseY contiennent les coordonnées horizontale et verticale du clic souris, exprimées dans le système de coordonnées locales de la fenêtre dans laquelle le clic s'est produit. L'angle supérieur gauche de la fenêtre a les coordonnées 0,0. Ces variables n'ont de signification que lorsqu'un clic souris a eu lieu.

La variable système MouseProc contient le numéro de référence du process dans lequel le clic souris s'est produit.

Note : Les variables système MouseDown, KeyCode, Modifiers, MouseX, MouseY et MouseProc ne contiennent des valeurs significatives que dans une méthode de gestion d'événement installée par APPELER SUR EVENEMENT.

Exemple

L'exemple suivant annule l'impression si l'utilisateur appuie sur les touches Ctrl+. (Commande+. sous Mac OS). En premier lieu, la méthode de gestion des événements est installée. Ensuite, un message s'affiche, indiquant que l'impression a été annulée. Si la variable interprocess <>vbOnStoppe est égale à Vrai dans la méthode de gestion d'événement, une boîte de dialogue d'alerte s'affiche pour indiquer à l'utilisateur le nombre d'enregistrements qui viennent de s'imprimer. Enfin, la méthode de gestion d'événement est désinstallée :

   UTILISER PARAMETRES IMPRESSION 
   Si (OK =1)
      <>vbOnStoppe:=Faux
      APPELER SUR EVENEMENT("GESTION EVENEMENTS") 
      TOUT SELECTIONNER([Personnes]) 
      MESSAGE("Pour interrompre l'impression, appuyez sur Ctrl+point.") 
      $NbEnregistrements:=Enregistrements trouves([Personnes])
      Boucle ($Enrg;1;$NbEnregistrements) 
         Si (<>vbOnStoppe) 
            ALERTE("L'impression a été annulée à l'enregistrement "+Chaine($Enrg)+" sur "+Chaine 
                                       ($NbEnregistrements))
            $Enrg:=$NbEnregistrements+1
         Sinon  
            Imprimer ligne([Personnes];"Etat") 
         Fin de si 
      Fin de boucle 
      SAUT DE PAGE 
      APPELER SUR EVENEMENT("") ` Désinstallation de la méthode d'appel sur événement
   Fin de si

La méthode de gestion d'événement teste si la combinaison de touches Ctrl+. (Commande+.) a été employée et met la variable interprocess <>vbOnStoppe à Vrai :

   ` Méthode projet GESTION EVENEMENTS
   Si ((Modifiers ?? Bit touche commande) & ( KeyCode = Point))
      CONFIRMER("Voulez-vous vraiment annuler l'impression ?") 
      Si (OK=1) 
         <>vbOnStoppe:=Vrai 
         FILTRER EVENEMENT   ` N'oubliez pas cet appel sinon 4D traitera aussi cet événement
      Fin de si 
   Fin de si

Notez que APPELER SUR EVENEMENT est utilisé dans cet exemple car un état spécial est imprimé à l'aide des commandes PARAMETRES IMPRESSION, Imprimer ligne et SAUT DE PAGE dans une structure de type Boucle...Fin de boucle.

Lorsque vous imprimez un état à l'aide la commande IMPRIMER SELECTION, vous n'avez pas besoin de gérer les événements permettant à l'utilisateur d'interrompre l'impression, IMPRIMER SELECTION le fait pour vous.

Référence

FILTRER EVENEMENT, Majuscule enfoncee, Methode appelee sur evenement, POSITION SOURIS.


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant