PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV 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'une 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/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Présentation
Nous vous présentons ici quelques manipulations spécifiques aux menus et aux options de menu :
Remarques :
Versions 21 et supérieures
Universal Windows 10 App Cette fonctionnalité est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Universal Windows 10 App Cette fonctionnalité est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonctionnalité est désormais disponible en mode Universal Windows 10 App.
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 multilangue.
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 le traitement 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 l'icône "..." présent dans la barre d'icônes de la fenêtre de code. La liste des traitements optionnels présents dans le code s'affiche.
    Barre des traitements optionnels
  3. Cochez le traitement optionnel "Affichage menu contextuel".
  4. Saisissez dans ce traitement optionnel le code à exécuter avant l'affichage du 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 traitements à xxx" situé à la fin de la fenêtre de code, après le dernier traitement.
  3. Dans la liste des traitements optionnels, sélectionnez le traitement "Affichage menu contextuel" et validez.
  4. Saisissez dans ce traitement 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 le traitement 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 "MonChamp".
  1. Affichez le code du champ "MonChamp" (option "Code" du menu contextuel du champ).
  2. Ajoutez le traitement optionnel "Bouton gauche enfoncé" (clic sur la seconde icône présente dans la barre d'icônes de la fenêtre de code).
    =Barre des traitements optionnels
    Cliquez sur le lien "Ajouter d'autres traitements à xxx" situé à la fin de la fenêtre de code, après le dernier traitement.
    Dans la liste des traitements optionnels, sélectionnez le traitement "Bouton gauche enfoncé" et validez.
  3. Dans ce traitement optionnel, saisissez le code suivant :
// Associer le menu contextuel au champ
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
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
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'une table sur lesquelles un clic droit est réalisé

Pour récupérer le numéro de la ligne et de la colonne d'une table sélectionnées par un clic droit avant l'affichage du menu contextuel, utilisez la fonction TableInfoXY dans le traitement 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. Ajoutez le traitement optionnel "Bouton droit enfoncé" (clic sur l'icône Icône traitement optionnel présent dans la barre d'icônes de la fenêtre de code).
    Barre des traitements optionnels
    Cliquez sur le lien "Ajouter d'autres traitements à xxx" situé à la fin de la fenêtre de code, après le dernier traitement.
    Dans la liste des traitements optionnels, sélectionnez le traitement "Bouton droit enfoncé" et validez.
  3. Dans ce traitement optionnel, saisissez le code suivant :
// Récupérer la ligne et la colonne sélectionnées par un clic droit
NumLigneSelect, NumColSelect sont des entiers
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 (traitement 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 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 de l'arbre représente un groupe d'utilisateur. Chaque feuille de l'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 le traitement optionnel "Clic droit de ARBRE_Groupes".
  3. Dans ce traitement, saisissez le code suivant :
// -- Clic droit de ARBRE_Groupes
// En fonction du type de l'élément sélectionné dans l'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