Comment connaitre le nom d'une option de menu à partir de son identifiant
L'énumération des élements apparue avec WinDev 7 permet bien des choses...
Dans le cas présent une procédure pour connaitre le nom d'une option de menu à partir de son identifiant (pratique pour en constituer une liste)
// Retourne le nom d'une option de menu à partir de son N° ID
PROCEDURE MenuNom(sParent,nNumOption, nNiveau=0)
// L'appel est du type :
// MenuNom(NomFenêtre,NumOption)
// NomFenêtre = Nom de la fenêtre contenant le menu à parcourir
// NumOption = Numéro de l'option recherchée
sRetour est une chaîne // nom de l'option ayant pour ID nNumOption
// énumération des options de menu
sOption est une chaîne=EnumèreSousElément(sParent,enumPremier+enumMenuPrincipal)
// il ne faut pas mettre le nom du menu
SI nNiveau=0 ET sOption<>"" ALORS
sRetour=MenuNom(sParent+"."+sOption,nNumOption,nNiveau+1)
FIN
TANTQUE sOption<>"" ET sRetour=""
// nom complet de l'option de menu
sNomComplet est une chaîne=sParent+"."+sOption
SI {sNomComplet}..Valeur=nNumOption ALORS
sRetour=sNomComplet
SINON
// remplit les options du niveau supérieur
sRetour=MenuNom(sParent+"."+sOption,nNumOption,nNiveau+1)
FIN
// option suivante
sOption=EnumèreSousElément(sParent)
FIN
RENVOYER sRetour
// copie la liste des options du menu dans le presse papier (pour excel)
i est un entier
ss,sm,sf sont des chaines
sf = FenEnExécution()
Sablier
POUR i=1 A 200
Jauge(i,200)
ss+=i+TAB+MenuNom(sf,i)+RC
FIN
Jauge
VersPressePapier(ss)
1 Menu._Menu.Fichier
2 Menu._Menu.Fichier.Config
3 Menu._Menu.Fichier.Quitter
4 ...
Cette Q&R a été trouvée sur WDForge.org : http://old.wdforge.org/modules/smartfaq/faq.php?faqid=63