DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Menus déroulants / WINDEV et WINDEV Mobile
  • Présentation
  • Trucs et astuces
  • Remplacer le libellé d'une option de menu par le contenu d'un champ
  • Ajouter de l'aide sur une option de menu
  • Personnaliser l'apparence d'un menu
  • Rendre invisible le menu principal d'une fenêtre
  • Exécuter du code avant d'afficher le menu contextuel
  • Afficher un menu contextuel grâce à un clic gauche
  • Dissocier un menu contextuel d'un champ ou d'une fenêtre
  • Récupérer le numéro de la ligne et de la colonne d'un champ Table sur lesquelles un clic droit est réalisé
  • Changer le menu contextuel en fonction de l'élément sélectionné dans un champ Arbre
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Trucs et astuces

Remplacer le libellé d'une option de menu par le contenu d'un champ

Il suffit de :
  • récupérer le contenu du champ.
  • modifier le libellé de l'option de menu avec la propriété Libellé ou avec la fonction MenuLibellé.
Exemples :
  • Le libellé de l'option de menu "MonOption" doit correspondre à la valeur saisie dans le champ "MonChamp".
    MonOption.Libellé = MonChamp
    // Équivalent à : MenuLibellé(MonOption, MonChamp)
  • Le libellé de l'option de menu "MonOption" doit correspondre au contenu de la cellule appartenant à la colonne "COL_MaColonne" et à la ligne sélectionnée par l'utilisateur dans le champ Table "TABLE_MaTable" :
    MonOption.Libellé = COL_MaColonne[TableSelect(TABLE_MaTable)]
    // Équivalent à :
    // MenuLibellé(MonOption, COL_MaColonne[TableSelect(TABLE_MaTable)])

Ajouter de l'aide sur une option de menu

Pour détailler la fonctionnalité de chaque option de menu, il est possible d'afficher un message d'aide dans la barre de message de la fenêtre lorsqu'une option est mise en surbrillance.
Comment faire ?
La saisie de ce message d'aide s'effectue dans l'onglet "Aide" de la fenêtre de description des options de menu (option "Description de l'option" du menu contextuel). Ce message d'aide peut être multilingue.
Remarque : Ce message d'aide peut être modifié par programmation grâce à la fonction Message ou grâce à la propriété Message.

Personnaliser l'apparence d'un menu

Pour personnaliser l'apparence d'un menu, il suffit de personnaliser le style d'une option de ce menu. Ces modifications seront automatiquement reportées sur toutes les options du menu.
Il est possible de personnaliser :
  • la couleur de fond d'un menu.
  • la police (taille, couleur, ...) des options d'un menu.
  • la couleur de fond de l'option survolée.
  • la police (taille, couleur, ...) de l'option survolée.
Pour personnaliser l'apparence d'un menu :
  1. Sélectionnez une option de menu.
  2. Affichez l'onglet "Style" de la fenêtre de description des options de menu (option "Description de l'option" du menu contextuel).
  3. Pour personnaliser :
    • la couleur de fond du menu : sélectionnez "Fond de l'option" dans la combo "Élément" et sélectionnez la couleur de fond de l'option.
    • la police des options du menu : sélectionnez "Texte de l'option" dans la combo "Élément" et sélectionnez les caractéristiques de la police (attributs, taille, couleur, ...)
    • la couleur de fond de l'option survolée : sélectionnez "Fond de l'option (survol)" dans la combo "Élément" et sélectionnez la couleur de fond de l'option survolée.
Remarque : La couleur de fond ou la couleur du texte peut être :
  • soit une couleur prédéfinie. Sélectionnez cette couleur parmi celles proposées dans la combo "Couleur".
  • soit une couleur personnalisée. Définissez cette couleur à l'aide du sélecteur de couleurs (bouton "..." à droite de la combo "Couleur").
Par exemple :
Couleur de fond des options et couleur du texte
Cas particulier : Menu au look XP
Seules les caractéristiques de la police des options de menu seront prises en compte si le menu utilise le look XP. Pour plus de détails, consultez Utilisez le look XP dans vos fenêtres.
Universal Windows 10 App Il n'est pas possible de personnaliser l'apparence d'un menu.

Rendre invisible le menu principal d'une fenêtre

Pour rendre invisible le menu principal d'une fenêtre, il suffit de rendre invisible toutes les options "principales" du menu.
Exemple : Les options "principales" du menu suivant sont "Fichiers" et "Impressions".
Options principales
Pour rendre invisible ce menu principal, saisissez le code suivant :
// Rendre invisibles les options "Fichiers" et "Impressions"
Fichiers.Visible = Faux
Impressions.Visible = Faux
// Équivalent à :
// MenuInvisible(Fichiers)
// MenuInvisible(Impressions)

Exécuter du code avant d'afficher le menu contextuel

Pour exécuter du code avant d'afficher le menu contextuel, il suffit d'ajouter l'événement optionnel "Affichage menu contextuel" dans le code de l'élément (champ ou fenêtre) associé au menu contextuel.
Comment le faire ?
  1. Affichez le code de l'élément (champ ou fenêtre) associé au menu contextuel (option "Code" du menu contextuel de l'élément).
  2. Cliquez sur le lien "Ajouter d'autres événements à xxx" situé à la fin de la fenêtre de code, après le dernier événement.
  3. Dans la liste des événements optionnels, sélectionnez l'événement "Affichage menu contextuel" et validez.
  4. Saisissez dans cet événement optionnel le code à exécuter avant l'affichage du menu contextuel.

Afficher un menu contextuel grâce à un clic gauche

Pour afficher un menu contextuel grâce à un clic gauche, il suffit de simuler l'action d'un clic droit dans l'événement optionnel "Bouton gauche enfoncé" d'un élément (champ ou fenêtre).
Pour que le menu contextuel s'affiche uniquement lors d'un clic gauche (et non lors d'un clic droit), l'élément (champ ou fenêtre) ne doit pas être associé par défaut à un menu contextuel.
Exemple : Les opérations nécessaires à l'affichage d'un menu contextuel grâce à un clic gauche sont illustrées par l'exemple suivant : Le menu contextuel "MonMenu" s'affiche uniquement lors d'un clic gauche sur le champ de saisie "SAI_MonChamp".
  1. Affichez le code du champ "SAI_MonChamp" (option "Code" du menu contextuel du champ).
  2. Cliquez sur le lien "Ajouter d'autres événements à xxx" situé à la fin de la fenêtre de code, après le dernier événement.
    Dans la liste des événements optionnels, sélectionnez l'événement "Bouton gauche enfoncé" et validez.
  3. Dans cet événement optionnel, saisissez le code suivant :
    // Associer le menu contextuel au champ
    SAI_MonChamp.MenuContextuel = MonMenu
    // Simuler un clic droit sur le bouton pour appeler
    // le menu contextuel
    SendMessage(Handle(MoiMême), 516, 0, 0)
    SendMessage(Handle(MoiMême), 517, 0, 0)
    // Dissocier le menu contextuel du champ
    SAI_MonChamp.MenuContextuel = ""

Dissocier un menu contextuel d'un champ ou d'une fenêtre

Pour dissocier un menu contextuel d'une champ ou d'une fenêtre, il suffit d'utiliser la propriété MenuContextuel en lui passant en paramètre une chaîne vide ("").
Exemple
// Dissocier le menu contextuel du champ
SAI_MonChamp.MenuContextuel = ""
Remarque : Si un menu contextuel système est disponible, ce menu contextuel remplacera le menu contextuel personnalisé.

Récupérer le numéro de la ligne et de la colonne d'un champ Table sur lesquelles un clic droit est réalisé

Pour récupérer le numéro de la ligne et de la colonne d'un champ Table sélectionnées par un clic droit avant l'affichage du menu contextuel, utilisez la fonction TableInfoXY dans l'événement optionnel "Bouton droit enfoncé".
Exemple : Les opérations nécessaires à la récupération du numéro de la ligne et de la colonne sélectionnées par un clic droit sont illustrées par l'exemple suivant : Le menu contextuel "MonMenu" est associé au champ Table "TABLE_MaTable". Ce menu permet de manipuler le contenu de la cellule à partir de laquelle le menu contextuel est ouvert.
La cellule sélectionnée est colorée en bleu avant l'affichage du menu contextuel.
  1. Affichez le code du champ "TABLE_MaTable" (option "Code" du menu contextuel du champ).
  2. Cliquez sur le lien "Ajouter d'autres événements à xxx" situé à la fin de la fenêtre de code, après le dernier événement.
    Dans la liste des événements optionnels, sélectionnez l'événement "Bouton droit enfoncé" et validez.
  3. Dans cet événement optionnel, saisissez le code suivant :
    // Récupérer la ligne et la colonne sélectionnées par un clic droit
    NumLigneSelect est un entier
    NumColSelect est un entier
    NumLigneSelect = TableInfoXY(MoiMême, tiNumLigne, SourisPosX(), SourisPosY())
    NumColSelect = TableInfoXY(MoiMême, tiNumColonne, SourisPosX(), SourisPosY())
    // Modifier la couleur de la cellule sélectionnée
    TABLE_MaTable[NumLigneSelect][NumColSelect].CouleurFond = BleuClair
WINDEV

Changer le menu contextuel en fonction de l'élément sélectionné dans un champ Arbre

Pour changer dynamiquement de menu contextuel lors de la sélection d'un élément dans un champ Arbre, utilisez la propriété MenuContextuel. Cette propriété doit être utilisée à l'interception du clic droit sur le champ Arbre (événement optionnel "Clic droit").
Exemple : Les opérations nécessaires au changement dynamique d'un menu contextuel lors d'un clic droit sur un élément d'un champ Arbre sont illustrées par l'exemple suivant :
Les menus contextuels suivants sont associés au champ Arbre "ARBRE_Groupes" :
  • ctxUtilisateur : permet de manipuler les utilisateurs listés dans le champ Arbre.
  • ctxGroupe : permet de manipuler les groupes d'utilisateurs listés dans le champ Arbre.
    Chaque noeud du champ Arbre représente un groupe d'utilisateurs. Chaque feuille du champ Arbre représente un utilisateur.
  1. Affichez le code du champ Arbre "ARBRE_Groupes" (option "Code" du menu contextuel du champ).
  2. Positionnez votre curseur dans l'événement optionnel "Clic droit de ARBRE_Groupes".
  3. Dans cet événement, saisissez le code suivant :
    // -- Clic droit de ARBRE_Groupes
    // En fonction du type de l'élément sélectionné dans le champ Arbre,
    // le menu contextuel à afficher est changé
    nTypeElement = ArbreTypeElément(ARBRE_Groupes, ArbreSelect(ARBRE_Groupes))
     
    SELON nTypeElement
    CAS aFeuille // C'est un utilisateur
    ARBRE_Groupes.MenuContextuel = ctxUtilisateur
    CAS aNoeud // C'est un groupe d'utilisateurs
    ARBRE_Groupes.MenuContextuel = ctxGroupe
    AUTRES CAS // En cas d'erreur
    ARBRE_Groupes.MenuContextuel = ""
    FIN
Résultat :
Premier menu contextuel d'un élémentSecond menu contextuel d'un élément
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 20/03/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale