PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → [WD25] Liste des menus contextuels et de leurs boutons parents
[WD25] Liste des menus contextuels et de leurs boutons parents
Débuté par EP, 03 mai 2021 11:40 - 6 réponses
Membre enregistré
4 messages
Posté le 03 mai 2021 - 11:40
Bonjour,

je n'arrive pas a retrouver cette information, donc si quelqu'un a une solution je suis preneur.

Nous avons un ruban, avec des boutons associés.
Sur certains de ces bouton, nous avons affecté un menu contextuel via l'UI, avec un bouton flèche (Action dérouler le menu).

Je voudrais lister la totalité des boutons du ruban, et savoir sur chaque bouton quel est le menu contextuel qui y est associé, mon but étant de générer par procédure un menu automatiquement.

Donc le listage des boutons -> Pas de soucis avec EnumèreChamp
Le listage des menus contextuels de la fenêtre -> Pas de soucis avec EnumèreSousElément

Par contre, je n'ai aucun moyen de lier les uns aux autres a savoir quel menu est affecté a quel bouton.

J'ai déjà tenté au moment du listage des boutons, d'utiliser la propriété ..MenuContextuel,
Malheureusement, elle me renvoie vide quand un menu est affecté au bouton (ca aurait été plus utile qu'elle me retourne le nom du menu), et elle me renvoie <NOCONTEXTMENU> quand il n'y a aucun menu contextuel associé au bouton.

De même, je n'ai pas moyen au moment du listage des menus de pouvoir retrouver le bouton auquel le menu est affecté.

J'ai aussi tenter de combiner les 2 listes pour utiliser un champexiste() dessus, mais aucun résultat.

Si quelqu'un a une piste (ou même une solution) je suis preneur.

Merci.
Membre enregistré
2 449 messages
Posté le 03 mai 2021 - 15:43
Bonjour,
Je viens de tester, BTN_XXX..MenuContextuel renvoie bien le nom du menu associé. Si la valeur renvoyée est "" c'est qu'il n'y a aucun menu associé.
A priori tu dois avoir un problème avec ton indirection

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
4 messages
Posté le 03 mai 2021 - 16:04
Merci pour ton retour.

Ecoute mon indirection à l'air ok pourtant. Je récupère bien le nom, le type, le nomcomplet, le libellé etc... mais pas le MenuContextuel.
Je vais revérifier.
Membre enregistré
2 449 messages
Posté le 03 mai 2021 - 16:32
Ce bout de code affiche le nom du bouton et le menu contextuel associé (aucun sinon) :
sParent est une chaîne
sNomChamp est une chaîne
sNomComplet est chaîne
nTypeChamp est un entier
sMenuCtx est chaîne

sParent="FEN_Test.RUBAN_TEST"
sNomChamp=EnumèreSousElément(sParent, enumPremier)

TANTQUE sNomChamp <> ""

// Nom complet du champ
sNomComplet =sParent + "." + sNomChamp
// Récupération du type de l'élément
nTypeChamp={sNomComplet,indChamp}..Type
SI nTypeChamp=typBouton ALORS
sMenuCtx={sNomComplet,indChamp}..MenuContextuel
SI sMenuCtx="" ALORS
sMenuCtx="Aucun"
FIN
TraceConstruit("Menu contextuel de %1 :%2",sNomChamp,sMenuCtx)
FIN
// Champ suivant
sNomChamp = EnumèreSousElément(sParent)
FIN


--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
4 messages
Posté le 03 mai 2021 - 16:45
Je confirme mes dires, même si je fais un trace de MonBouton..MenuContextuel, il me retourne vide.
Donc ce n'est pas un souci d'indirection.

La question reste donc ouverte.

@Voroltinquo : Comment as-tu paramétré ton bouton ? As-tu fais comme j'ai expliqué plus haut ?
Ci dessous dans la capture, en jaune, le seul endroit ou se trouve mon menu contextuel.




Membre enregistré
4 messages
Posté le 03 mai 2021 - 16:49
Je n'ai que Aucun ou No Context Menu avec ta procédure.
J'ai donc bel et bien un souci.
Membre enregistré
2 449 messages
Posté le 03 mai 2021 - 22:23
erf
En effet, j'ai merdu. J'avais testé avec l'option "menu contextuel"

--
Il y a peut être plus simple, mais, ça tourne