version 11 (Modifiée)
Menu choisi {(sousMenu)} Numérique
Paramètre | Type | Description | |
sousMenu | RefMenu | Référence du menu contenant la ligne sélectionnée | |
Résultat | Numérique | Commande de menu sélectionnée | |
Mot machine haut = n° de menu | |||
Mot machine bas = n° de commande de menu |
Description
Menu choisi ne s'utilise que lorsqu'un formulaire est affiché. Cette fonction détecte la commande de menu choisie dans un menu et, dans le cas d'un sous-menu hiérarchique, retourne la référence du sous-menu.
Astuce : A chaque fois que cela est possible, utilisez des méthodes associées à des commandes de menus dans une barre associée (avec un numéro de barre négatif) plutôt que d'appeler Menu choisi. Les barres de menus associées sont plus faciles à gérer, puisqu'il n'est pas nécessaire de tester leur sélection. Cependant, si vous utilisez les commandes AJOUTER LIGNE MENU ou INSERER LIGNE MENU, vous devez utiliser Menu choisi car les lignes de menus créées de cette manière ne sont associées à aucune méthode.
La commande Menu choisi permet de travailler avec des sous-menus hiérarchiques. En cas de sélection d'une ligne d'un menu hiérarchique au-delà du premier niveau, la commande retourne dans le paramètre facultatif sousMenu la référence (type RefMenu, chaîne de 16 caractères) du sous-menu auquel appartient la ligne sélectionnée. Si la commande du menu ne contient pas de sous-menu hiérarchique, ce paramètre reçoit une chaîne vide.
Menu choisi retourne le numéro système du menu sélectionné sous forme d'Entier long. Pour obtenir le numéro du menu, divisez Menu choisi par 65536 et convertissez le résultat en Entier. Pour obtenir le numéro de la commande de menu, calculez le modulo de Menu choisi avec le coefficient 65536. Utilisez les formules suivantes pour calculer le numéro du menu et de la commande de menu :
Menu := Menu choisi \ 65536 Ligne de menu := Menu choisi % 65536
Vous pouvez également extraire ces valeurs à l'aide des Opérateurs sur les bits, comme dans l'exemple suivant :
Menu := (Menu choisi & 0xFFFF0000) >> 16 Ligne de menu := Menu choisi & 0xFFFF
Menu choisi retourne 0 si aucune commande de menu n'est sélectionnée.
Exemple
La méthode formulaire suivante utilise la fonction Menu choisi pour fournir les arguments "menu" et "ligne de menu" à FIXER MARQUE LIGNE MENU :
Au cas ou : (Evenement formulaire=Sur menu sélectionné) C_ALPHA(16;$refMenuIncludingItem) C_ENTIER LONG($ref;$NumMenu;$NumMenuItem) $ref:= Menu choisi ($refMenuIncludingItem) $NumMenu:=$ref\65536 $NumMenuItem:=$ref%65536 FIXER MARQUE LIGNE MENU ($refMenuIncludingItem; $NumMenuItem;Caractere(18)) Fin de cas
Note : L'événement Sur menu selectionné n'est pas activé si aucune ligne n'est sélectionnée, $refmenuincludingItem est toujours renseigné et $NumMenu vaut 0 si le menu n'est pas un des menus de la barre.
Référence