version 6.0
dr_APPELER SUR MENU (zone; méthode)
| Paramètre | Type | Description | |
| zone | Entier long | Zone 4D Draw (-1 = toutes les zones) | |
| méthode | Alpha | Nom de la méthode à exécuter |
Description
La commande dr_APPELER SUR MENU provoque l'exécution de la méthode projet passée en second paramètre lorsqu'une commande de menu est sélectionnée. Si vous passez -1 dans zone, dr_APPELER SUR MENU s'applique à toutes les zones 4D Draw jusqu'à la fermeture de la base ou l'interruption de méthode.
La méthode appelée recevra trois paramètres :
$1 : Entier long contenant le numéro de la zone 4D Draw,
$2 : Entier long contenant le numéro de la commande de menu,
$3 : Entier long contenant le numéro du "modifier". Ce paramètre correspond à l'un des modifiers suivants (ou une combinaison d'entre eux) :
| Code | Windows | MacOS |
| 0 | Aucun | Aucun |
| 1 | Ctrl | Commande |
| 2 | Majuscule | Majuscule |
| 4 | Alt | Option |
| 8 | - | Contrôle |
Note : La touche Contrôle du Macintosh n'ayant pas d'équivalence sur PC, la valeur 8 n'est exploitable que sous MacOS.
Ces différentes valeurs peuvent être additionnées pour indiquer une combinaison de plusieurs touches. Par exemple, une valeur égale à 3 pour $3 signifie sous Windows que les touches Majuscule et Alt ont été pressées à la sélection de la commande de menu.
Note : Pour un bon fonctionnement en mode compilé, il est indispensable que les variables $1, $2 et $3 soient déclarées comme Entier long.
Pour interrompre une méthode d'appel sur menu et rétablir le fonctionnement original des menus, passez une chaîne vide dans méthode.
Note : L'emploi de dr_APPELER SUR MENU suppose que l'utilisateur gère lui-même tous les menus par l'intermédiaire de dr_EXECUTER MENU.
Exemple
Dans cet exemple, une méthode différente est appelée selon la combinaison de touches.
` Installation de la méthode SurMenu pour toutes les zones 4D Draw : dr_APPELER SUR MENU(-1;"SurMenu") ` Méthode projet SurMenu : C_ENTIER LONG($1;$2;$3) Au cas ou : ($3=0) ` Pas de Touche SansTouche ($1;$2;$3) : ($3=1) ` Ctrl (Win) ou Commande (Mac) Commande ($1;$2;$3) : ($3=2) ` Majuscule Majuscule ($1;$2;$3) : ($3=3) ` Ctrl-Majuscule (Win) ou Commande-Majuscule (Mac) CommandeMajuscu ($1;$2;$3) : ($3=4) ` Alt (Win) ou Option (Mac) Option ($1;$2;$3) : ($3=5) ` Ctrl-Alt (Win) ou Commande-Option (Mac) CommandeOption ($1;$2;$3) : ($3=6) ` Majuscule-Alt (Win) ou Majuscule-Option (Mac) MajusculeOption ($1;$2;$3) : ($3=7) ` Ctrl-Majuscule-Alt (Win) ou Commande-Majuscule-Option (Mac) ComMajOption ($1;$2;$3) : ($3=8) ` Contrôle (Mac seulement) Controle ($1;$2;$3) : ($3=9) ` Commande-Contrôle (Mac seulement) CommandeControl ($1;$2;$3) : ($3=10) ` Majuscule-Contrôle (Mac seulement) MajuscControle ($1;$2;$3) : ($3=11) ` Majuscule-Contrôle-Commande (Mac seulement) MajContrCom ($1;$2;$3) : ($3=12) ` Option-Contrôle (Mac seulement) OptionControle ($1;$2;$3) : ($3=13) ` Commande-Option-Contrôle (Mac seulement) ComOptContr ($1;$2;$3) : ($3=14) ` Majuscule-Option-Contrôle (Mac seulement) MajOptContr ($1;$2;$3) : ($3=15) ` Commande-Majuscule-Option-Contrôle (Mac seulement) ComMajOptContr ($1;$2;$3) Fin de cas ` La méthode projet SansTouche permet de connaître le nom et ` l'emplacement des documents enregistrés ou ouverts par l'utilisateur. C_ENTIER LONG($1;$2;$3) Si ($1=MaZone) ` S'il s'agit de la bonne zone 4D Draw Si (($2=1002) | ($2=1003) | ($2=1004)) ` S'il s'agit des lignes de menu Ouvrir , Enregistrer ou Enregistrer sous C_TEXTE(DocOuvert;DocSauve) DocOuvert:="" DocSauvé:="" ` Initialisation des variables en chaîne vide Si ($2=1002) dr_OUVRIR FICHIER ($1;DocOuvert;0) ` DocOuvert contiendra le chemin d'accès au document ouvert Sinon dr_SAUVER FICHIER ($1;DocSauvé;"4DRW") ` DocSauvé contiendra le chemin d'accès au document sauvegardé Fin de si Sinon dr_EXECUTER MENU ($1;$2) ` S'il s'agit d'une autre ligne de menu, l'exécuter normalement Fin de si Sinon dr_EXECUTER MENU ($1;$2) ` S'il ne s'agit pas de la bonne zone 4D Draw, exécuter les menus normalement Fin de si