Code (Windev): // Résumé : Test l'existence d'un menu ou d'une option de menu // Syntaxe : //[ <Résultat> = ] ChkMenuExiste (<prmMenu> [, <prmFenêtre>]) // // Paramètres : // prmMenu : Nom du menu à rechercher (ex : MNU_CG) // prmFenêtre : Nom de la fenêtre du menu (<MaFenêtre> par défaut) // Valeur de retour : // booléen : <Vrai> si le menu existe. // // Exemple : // Indiquez ici un exemple d'utilisation. // PROCEDURE ChkMenuExiste(prmMenu, prmFenêtre=MaFenêtre..Nom) nI, nJ est entier NomMenu, NomSousMenu est une chaîne nI=1 NomMenu = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(prmFenêtre, 1) // lecture du 1er menu de la fenêtre TANTQUE NomMenu <> "" SI NomMenu=prmMenu ALORS RENVOYER Vrai nJ = 1 NomSousMenu = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(NomMenu, nJ) // lecture de la 1er option du menu TANTQUE NomSousMenu <> "" SI NomSousMenu=prmMenu ALORS RENVOYER Vrai nJ++ // option suivante NomSousMenu = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(NomMenu, nJ) FIN nI++ // menu suivant NomMenu = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(prmFenêtre,nI) FIN RENVOYER Faux
Bonjour, Je préfère toujours mettre le code entre balises. Histoire d'être plus visible. Code (Windev): // Résumé : Test l'existence d'un menu ou d'une option de menu // Syntaxe : //[ <Résultat> = ] ChkMenuExiste (<prmMenu> [, <prmFenêtre>]) // // Paramètres : // prmMenu : Nom du menu à rechercher (ex : MNU_CG) // prmFenêtre : Nom de la fenêtre du menu (<MaFenêtre> par défaut) // Valeur de retour : // booléen : <Vrai> si le menu existe. // // Exemple : // Indiquez ici un exemple d'utilisation. // PROCEDURE ChkMenuExiste(prmMenu, prmFenêtre=MaFenêtre..Nom) nI, nJ est entier NomMenu, NomSousMenu est une chaîne nI=1 NomMenu = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(prmFenêtre, 1) // lecture du 1er menu de la fenêtre TANTQUE NomMenu <> "" SI NomMenu=prmMenu ALORS RENVOYER Vrai nJ = 1 NomSousMenu = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(NomMenu, nJ) // lecture de la 1er option du menu TANTQUE NomSousMenu <> "" SI NomSousMenu=prmMenu ALORS RENVOYER Vrai nJ++ // option suivante NomSousMenu = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(NomMenu, nJ) FIN nI++ // menu suivant NomMenu = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(prmFenêtre,nI) FIN RENVOYER Faux
Merci Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! pour ton partage, J'ai regarder ton code, il est fonctionnel seulement quand tu as un menu+option, mais non fonction fonctionnelle si menu+option+sous_option+sous_option+... Bref il ne va jamais jusqu'au bout de l’arborescence du menu. J'ai modifié ton code pour cela (pas de beaucoup vu que t'avais déjà fait 90% du taf ) : Code (Windev): PROCEDURE ChkMenuExiste(prmMenu, prmFenêtre=MaFenêtre..Nom) nI est un entier//, nJ est entier //nI, nJ est entier NomMenu est une chaîne//, NomSousMenu est une chaîne //NomMenu, NomSousMenu est une chaîne nI=1 NomMenu = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(prmFenêtre, 1) // lecture du 1er menu de la fenêtre TANTQUE NomMenu <> "" SI NomMenu=prmMenu ALORS RENVOYER Vrai //****mode récursive pour aller jusqu'au bout de l'aborescence d'un menu SI ChkMenuExiste(prmMenu,NomMenu) ALORS RENVOYER Vrai FIN // nJ = 1 // NomSousMenu = EnumèreMenu(NomMenu, nJ) // lecture de la 1er option du menu // TANTQUE NomSousMenu <> "" // SI NomSousMenu=prmMenu ALORS RENVOYER Vrai // // nJ++ // option suivante // NomSousMenu = EnumèreMenu(NomMenu, nJ) // FIN nI++ // menu suivant NomMenu = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(prmFenêtre,nI) FIN RENVOYER Faux