PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → [WD 80-315p][Enumemer les menus contextuels]
[WD 80-315p][Enumemer les menus contextuels]
Débuté par magena, 15 déc. 2004 09:45 - 3 réponses
Posté le 15 décembre 2004 - 09:45
Bonjour,

J'essaie vainement d'énumérer l'ensemble des menus contextuels d'un projet,
ainsi que les options associées.
Les fonctions d'énumération ne me permettent actuellement d'énumérer que le
1er menu avec ses options.
La fenêtre en question en comporte 7
Je me suis penché sur la fenêtre du groupware utilisateur
(GPWDetailConfiguration) de WD, mais elle ne récupère pas les menus
contextuels. En récupérant le code de cette fenêtre et en tentant d'adapter
le code de la fonction RemplirMenu de cette fenêtre, j'aboutis au même
résultat : Seul le premier menu de ma fenêtre est pris en compte

Si quelqu'un a une méthode....
Posté le 15 décembre 2004 - 10:48
J'ai pas bien compris, as-tu essayé d'utiliser

POUR Toute fenêtre du projet

MonMenu = EnumèreSousElement (MaFenetre, enumPremier+enumMenuContextuel )
tantque MonMenu <> "" alors
MonMenu = EnumèreSousElement (MaFenetre, enumMenuContextuel )
fin
FIN

Apparemment, selon l'aide c'est exactement ce qu'il te faudrait pour énumérer la liste des menus, ensuite pour chaque menu utilise EnumereMenu (MonMenu, MonOption)
Posté le 15 décembre 2004 - 17:11
Merci Daniel pour ton début de réponse,
Effectivement ainsi j'arrive à énumérer TOUS les Menus Contextuels de la
fenêtre (c'est le résultat auquel j'étais parvenu), en allant jusqu'aux
options du 1er menu de ma fenêtre en prenant l'exemple du GroupWare, puis
:Impossible de passer aux menus suivants ainsi qu'aux options des autres
menus

Si quelqu'un sait comment récupérer l'ensemble des options de l'ensemble des
menus contextuels d'une fenêtre....

Exemple :
Fen1
Menu1
Opt1
Opt2
Menu2
Opt1
Opt2
Optx
........
Je n'arrive qu'à Fen1 +Menu1+Opt1 et Opt2 , Mais pas à récupérer la suite...
Et le Groupware ne le fait pas non plus.

"Daniel Hollaar" <daniel.hollaar@agriware.com> a écrit dans le message de
news: 41bff046@news.pcsoft.fr...

J'ai pas bien compris, as-tu essayé d'utiliser

POUR Toute fenêtre du projet

MonMenu = EnumèreSousElement (MaFenetre, enumPremier+enumMenuContextuel )
tantque MonMenu <> "" alors
MonMenu = EnumèreSousElement (MaFenetre, enumMenuContextuel )
fin
FIN

Apparemment, selon l'aide c'est exactement ce qu'il te faudrait pour
énumérer la liste des menus, ensuite pour chaque menu utilise EnumereMenu
(MonMenu, MonOption)
Posté le 16 décembre 2004 - 11:42
Bonjour,

Merci à Daniel Hollaar et Sandrine Legrix pour leur réponse.
Voici la solution pour ceux qui un jour ont essayé et n'ont pas trouvé, et
pour ceux qui n'auront plus à chercher...

Objectif : Enumérer TOUS les menus Contextuels d'une fenêtre ainsi que
TOUTES leurs Options
Ce code est insipré de la fenêtre du GroupWare Utilisateur :
GPWDetailConfiguration

La fenêtre Générée comporte :
- une liste = Fenetre avec le nom de toutes les fenêtres du projet
- une table = Table1 avec 3 colonnes (Fenêtre, Champ, Colonne)
_________________________________________________________________________
Code d'initialisation de la fenêtre :
TableSupprimeTout(Table1)
// énumération des fenêtres
sNomFenetre est une chaîne=EnumèreElément(enumFenêtre)
TANTQUE sNomFenetre<>""
ListeAjoute(Fenetre,sNomFenetre)
// fenêtre suivante
sNomFenetre=EnumèreElément()
FIN
Fenetre=1
________________________________________________________________________
Code de Sélection d'une ligne de la liste Fenetre

TableSupprimeTout(Table1)
RemplirMenu(Fenetre[Fenetre])
________________________________________________________________________
Procédure RemplirMenu
PROCEDURE RemplirMenu(sParent, nNiveau=0)
// énumération des menus
sOption est une
chaîne=EnumèreSousElément(sParent,enumPremier+enumMenuContextuel)
TANTQUE sOption<>""
// nom complet de l'option de menu
sNomComplet est une chaîne=sParent+"."+sOption
// ajoute l'option de menu
SI {sNomComplet,indGPW}..Type=typOptionMenu ALORS
TableAjouteLigne(Table1,ExtraitChaîne(sNomComplet,1,"."),sParent,sNomComplet)
FIN
// remplit les options du niveau supérieur
RemplirMenu(sNomComplet,nNiveau+1)
// option suivante
sOption=EnumèreSousElément(sParent)
FIN


"Magena" <magena@free.fr> a écrit dans le message de news:
41bfe272@news.pcsoft.fr...

Bonjour,

J'essaie vainement d'énumérer l'ensemble des menus contextuels d'un
projet,
ainsi que les options associées.
Les fonctions d'énumération ne me permettent actuellement d'énumérer que
le
1er menu avec ses options.
La fenêtre en question en comporte 7
Je me suis penché sur la fenêtre du groupware utilisateur
(GPWDetailConfiguration) de WD, mais elle ne récupère pas les menus
contextuels. En récupérant le code de cette fenêtre et en tentant
d'adapter
le code de la fonction RemplirMenu de cette fenêtre, j'aboutis au même
résultat : Seul le premier menu de ma fenêtre est pris en compte

Si quelqu'un a une méthode....