PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → MenuContextuel: Comment déterminer sa largeur?
MenuContextuel: Comment déterminer sa largeur?
Iniciado por Nicolas ROBIN, 05,mar. 2019 17:34 - No hay respuesta
Miembro registrado
87 mensajes
Publicado el 05,marzo 2019 - 17:34
Bonjour,

Y a-t-il un moyen permettant de récupérer la largeur et la hauteur d'un menu contextuel (généré par nos soins)?

A priori, ces propriétés n'existent pas sur un MenuContextuel.

Si cela n'existe pas, peut-être aurez-vous une autre solution pour faire ce que je souhaite.

En gros, je veux faire une procédure qui positionne un menu conextuel en bas à gauche d'un bouton par exemple.
Cela fonctionne bien mais j'aimerai traiter les cas où le menu viendrait à être affiché hors écran et pour cela j'ai besoin des dimensions de mon menu contextuel.

Voici le code:
Procedure OuvreMenuContextuel_Positionnee(sMenuContextuel est une chaîne,sBoutonParent_Menu est une chaîne)
sNomMenu est une chaîne
sNomBouton est une chaîne

nMenu_X est un entier
nMenu_Y est un entier
nMenu_Largeur est un entier
nMenu_Hauteur est un entier

nBouton_X est un entier
nBouton_Y est un entier
nBouton_Largeur est un entier
nBouton_Hauteur est un entier

sResolutionEcran est une chaîne
nResolution_Largeur est un entier
nResolution_Hauteur est un entier

sNomMenu =sMenuContextuel
sNomBouton =sBoutonParent_Menu

SI sNomMenu<>"" ALORS
SI sNomBouton="" ALORS
OuvreMenuContextuel(sNomMenu)
SINON
sResolutionEcran =SysRésolutionEcran()
nResolution_Largeur =ExtraitChaîne(sResolutionEcran,1)
nResolution_Hauteur =ExtraitChaîne(sResolutionEcran,2)

nBouton_X ={sNomBouton,indChamp}..X
nBouton_Y ={sNomBouton,indChamp}..Y
nBouton_Largeur ={sNomBouton,indChamp}..Largeur
nBouton_Hauteur ={sNomBouton,indChamp}..Hauteur

nMenu_Largeur ={sNomMenu,indChamp}..Largeur //Génère une erreur: La propriété n'existe pas sur un Menu
nMenu_Hauteur ={sNomMenu,indChamp}..Hauteur //Génère une erreur: La propriété n'existe pas sur un Menu

//Par défaut, on positionne le menu en bas à gauche du bouton d'appel
nMenu_X =nBouton_X
nMenu_Y =nBouton_Y+nBouton_Hauteur

//On contrôle que l'on ne va pas sortir de l'écran, sinon on re-positionne le bouton en conséquence
SI nMenu_X+nMenu_Largeur>nResolution_Largeur ALORS
nMenu_X=nBouton_X-nMenu_Largeur
FIN
SI nMenu_Y+nMenu_Hauteur>nResolution_Hauteur ALORS
nMenu_Y=nBouton_Y-nMenu_Hauteur
FIN

OuvreMenuContextuel(sNomMenu,nMenu_X,nMenu_Y)
FIN
FIN


--

NR