version 6.0
dr_APPELER SUR EVENEMENT (méthode)
| Paramètre | Type | Description | |
| méthode | Texte | Méthode à exécuter |
Description
La commande dr_APPELER SUR EVENEMENT exécute la méthode lorsqu'un événement donné survient. Cet événement doit être défini au préalable à l'aide de la commande dr_EVENEMENT.
Si la zone 4D Draw contient une méthode objet et si le formulaire où apparaît la zone est pourvu d'une méthode formulaire, la méthode objet de la zone sera exécutée en dernier.
Cette commande est particulièrement utile lors d'un travail en fenêtre externe, à laquelle l'association d'une méthode objet n'est pas possible.
La méthode appelée recevra 4 paramètres :
$1 est un entier long représentant la zone 4D Draw où l'événement s'est produit,
$2 reçoit le code de l'événement qui a provoqué l'appel de la méthode,
$3 est le numéro de la table où le formulaire a été créé. Si $3 est égal à -1, la zone 4D Draw est dans une fenêtre externe.
$4 est le numéro du champ dans lequel est sauvegardée la zone 4D Draw. Si $4 est égal à 0, la zone n'est pas sauvegardée dans un champ.
Note : Pour un bon fonctionnement en mode compilé, il est indispensable que les variables $1, $2, $3, $4 soient déclarées comme Entier long.
Exemple
L'exemple suivant montre l'installation d'une méthode d'appel sur événement dans le contexte d'une fenêtre externe. Ctrl+clic (sous Windows) ou Commande+clic (sous MacOS) dans la sélection sera notre événement et provoquera l'appel de la méthode passée en paramètre à la commande dr_APPELER SUR EVENEMENT.
CodeZone:=Creer fenetre externe(20;50;400;350;8;"4D Draw";"_4D Draw")
` La variable CodeZone contient la référence de la zone 4D Draw
dr_APPELER SUR EVENEMENT ("MéthEvénement")
`Appel de la méthode (cf. ci-dessous)
dr_EVENEMENT (CodeZone;64)
` Ctrl+clic ou Commande+clic (code 64) déclenchera l'exécution de la méthode MéthEvénement
La méthode MéthEvénement vérifie le nombre d'objets sélectionnés dans la fenêtre externe. Si un seul objet est sélectionné, une boîte de dialogue apparaît, proposant à l'utilisateur de baptiser ou de débaptiser l'objet sélectionné.
C_ENTIER LONG($1;$2;$3;$4)
vCompteur:=dr_Compter (CodeZone;0)
` Nombre d'éléments sélectionnés dans la zone 4D Draw en fenêtre externe
Si (vCompteur#1)
ALERTE("Ne sélectionnez qu'un seul objet.")
` Alerte si le nombre d'objets sélectionnés est différent de 1
Sinon
$Nom:=dr_Lire nom(CodeZone;0) ` $Nom contiendra, s'il existe, le nom de l'objet sélectionné
$Nom:=Demander("Nom de l'objet
";$Nom) ` Modifions ou confirmons le nom existant
Si (OK=1)
dr_FIXER NOM(CodeZone;0;$Nom) ` Attribuons le nom à l'objet sélectionné
Fin de si
Fin de si
Référence
dr_Dernier evenement, dr_EVENEMENT.