|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Se positionner sur une colonne située tout à droite |
| Débuté par Vincent DUBREIL, 09 déc. 2025 14:42 - 8 réponses |
| |
| | | |
|
| |
Membre enregistré 71 messages |
|
| Posté le 09 décembre 2025 - 14:42 |
Bonjour le forum,
voici mon problème J'ai une table mémoire qui contient beaucoup de colonnes, celles de droite étant du coup à droite et donc non visible à moins de scroller. Je cherche un moyen de me positionner sur une de ces colonnes pour la montrer à l'utilisateur sans qu'il n'est besoin de scroller manuellement. J'ai essayé avec des RepriseSaisie() et ce genre de fonction mais rien ne semble marcher Si vous avez une idée?!
-- ______________________________________ Vincent DUBREIL |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 290 messages |
|
| Posté le 09 décembre 2025 - 14:51 |
Bonjour,
Normalement avec la fonction AscenseurPosition() en spécifiant l'orientation "ascHorz"
Sinon, tu peux utiliser un message Windows :
SendMessage(Handle(Table1), 0x0114, 7, 0)
Cdlt |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 71 messages |
|
| Posté le 09 décembre 2025 - 15:50 |
Merci pour ta réponse Fabrice N, AscenseurPosition semble correspondre à mon besoin mais comment faire pour savoir à quelle position le situer justement. J'ai essayé de mettre l'indice de la colonne, l'ascenseur bouge très légèrement mais ne se déplace pas pour montrer la colonne en question
Sais-tu à quoi correspond la position dans cette fonction ?
J'ai également essayé le SendMessage et là, pour le coup, l'ascenseur va directement tout à droite. J'ai trouvé la documentation pour gérer l'ascenseur mais je ne pense pas que ça va correspondre
Je dois vraiment positionner l'ascenseur pour voir la colonne C, quelle soit au milieu, au 3/4, tout à droite,etc...
-- ______________________________________ Vincent DUBREIL |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 21 messages |
|
| Posté le 09 décembre 2025 - 16:39 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 290 messages |
|
| Posté le 09 décembre 2025 - 16:50 |
Vincent DUBREIL a écrit : > Sais-tu à quoi correspond la position dans cette fonction ? Si Orientation = ascHorz, c'est la position de départ de l’ascenseur horizontal par rapport au coté gauche (ou X) de la table
En principe, si tu ne vois pas la colonne, cela signifie que sa position X est supérieure à la largeur de la table. L'idée que je propose serait de calculer la nouvelle position de l'ascenseur en fonction de la position X de la colonne. Et cela uniquement si la position X de cette colonne est supérieure à la largeur de la table. Essayes avec ça. Il faudra peut être améliorer le code en fonction du style de la table (cadre inter/externe par ex)
AscenseurPosition(Table1, ascHorz, 1) nPositionColonne est un entier = Colonne15..X+Colonne15..Largeur nLargeurTable est un entier = Table1..Largeur-20 SI nPositionColonne>nLargeurTable ALORS AscenseurPosition(Table1, ascHorz, nPositionColonne-nLargeurTable)
Sinon, il y a aussi la fonction TableDéplaceColonne()
Cdlt |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 953 messages |
|
| Posté le 09 décembre 2025 - 17:00 |
bonjour Vincent,
avez vous essayé comme le proposait Fabrice N, AscenseurPosition() avec en complément AscenseurPositionMax().
Est-ce que toute vos colonnes ont la même largeur ?
Nombre de colonnes visibles -> A AscenseurPositionMax() -> T Nombre de colonnes jusqu'à celle que vous souhaitez -> B
A->T B-> ?
puis faire un produit en croix
B*T / A
J'espère ne pas être trop fouillis dans mon explication 
Bon dèv
Vincent DUBREIL a écrit :
Merci pour ta réponse Fabrice N, AscenseurPosition semble correspondre à mon besoin mais comment faire pour savoir à quelle position le situer justement. J'ai essayé de mettre l'indice de la colonne, l'ascenseur bouge très légèrement mais ne se déplace pas pour montrer la colonne en question
Sais-tu à quoi correspond la position dans cette fonction ?
J'ai également essayé le SendMessage et là, pour le coup, l'ascenseur va directement tout à droite. J'ai trouvé la documentation pour gérer l'ascenseur mais je ne pense pas que ça va correspondre
Je dois vraiment positionner l'ascenseur pour voir la colonne C, quelle soit au milieu, au 3/4, tout à droite,etc...
-- ______________________________________ Vincent DUBREIL |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 71 messages |
|
| Posté le 10 décembre 2025 - 09:42 |
Merci à tous pour vos réponses et particulièrement à Fabrice N  Ton code marche parfaitement J'en attendais pas autant, un grand merci 
-- ______________________________________ Vincent DUBREIL |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 5 messages |
|
| Posté le 10 décembre 2025 - 12:37 |
Bonjour Vincent
Pourquoi ne pas utiliser la fonction "DonneFocus(TABLE_XXX.COL_XX)" ? Fonctionne que j'utilise souvent.
Si la table n'est pas en saisie, utilise: TABLE_XX.EnSaisie = Vrai DonneFocus(TABLE_XXX.COL_XX) TABLE_XX.EnSaisie = Faux |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 009 messages |
|
| Posté le 10 décembre 2025 - 13:14 |
Bonjour, Petite précision pour la solution de Jean-Paul PELISSERO, il faut définir un mode de sélection des Lignes dans la description de la table Cdlt |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|