|
| Inicio → WINDEV 2025 → Position d'un champ présent dans un champ disposition par rapport à la fenêtre |
| Position d'un champ présent dans un champ disposition par rapport à la fenêtre |
| Iniciado por Julien V, 18,ago. 2020 14:50 - 4 respuestas |
| |
| | | |
|
| |
Miembro registrado 134 mensajes |
|
| Publicado el 18,agosto 2020 - 14:50 |
Bonjour,
J'ai besoin de connaître la position d'un champ (par ex. un bouton) par rapport à ma fenêtre.
Ce champ bouton est dans un champ disposition composé de deux cellules; il est dans la cellule 2 et sa propriété ..y est à 0 (donc relatif au champ disposition).
Une possibilité serait d'énumérer tous les champs de la fenêtre, faire un tableau permettant de déterminer si le parent du champ bouton est de type disposition si oui déterminer le ..y de ce champ dispo, déterminer la hauteur de chaque cellule visible, s'arrêter à la cellule qui contient le champ bouton et enfin ajouter le ..y du champ bouton...
Je dois forcément passer à coté d'une solution plus simple ?
Si quelqu'un a une idée, je suis preneur ! |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 310 mensajes |
|
| Publicado el 18,agosto 2020 - 15:36 |
Bonjour, si vous savez que le champ est assigné en cellule 2, on peut par exemple récuperer le ..y relatif à la fenêtre comme ceci :
Champdispo..y+Champdispo[2]..y+bouton1..y
Bon dev. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 134 mensajes |
|
| Publicado el 18,agosto 2020 - 16:22 |
Bonjour,
Merci pour la réponse, justement je ne trouve pas la technique pour déterminer le numéro de cellule qui contient le champ
J'ai essayé
iMax = _champ_disposition..Occurrence POUR i = 1 À iMax SI _champ_disposition[ i ]..Visible ALORS j = 1 champ = EnumèreChamp( _champ_disposition[ i ], j ) TANTQUE champ <> "" SI champ = _champ..Nom ALORS champTrouve = Vrai SORTIR FIN j++ champ = EnumèreChamp( _champ_disposition[ i ], j ) FIN SI champTrouve = Faux ALORS SI _champ_disposition..Disposition = dispEmpilementVertical ALORS y += _champ_disposition[ i ]..Hauteur SINON x += _champ_disposition[ i ]..Largeur FIN FIN FIN FIN
Mais la ligne champ = EnumèreChamp( _champ_disposition[ i ], j ) me renvoie l'erreur "Erreur de type. L'objet '' n'est ni une fenêtre, ni un onglet, ni un groupe" |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 310 mensajes |
|
| Publicado el 18,agosto 2020 - 17:04 |
Effectivement, EnumereChamp et EnumereElement ne parcourent pas les occurrences de Champ Disposition, On peut contourner en utilisant justement l'erreur déclenchée en cas de champ inconnu, par exemple, le code suivant liste tous les champs d'un champ disposition et affice le numero de cellule associé :
NomChamp est une chaîne=EnumèreSousElément("testFEN.Disposition1", enumPremier)
TANTQUE NomChamp <> "" numcel est un entier=0 POUR indi=1 À Disposition1..Occurrence QUAND EXCEPTIONEXCEPTION DANS SI {"disposition1["+indi+"]."+NomChamp,indChamp}<>"" ALORS FIN numcel=indi Trace(NomChamp+TAB+numcel) SORTIR FAIRE FIN FIN NomChamp = EnumèreSousElément("testFEN.Disposition1") FIN
Bon dev |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 134 mensajes |
|
| Publicado el 18,agosto 2020 - 17:22 |
Du génie !!
Un grand merci pour le coup de main ! |
| |
| |
| | | |
|
| | | | |
| | |
|