Calculer la largeur des colonnes d'un MshFlexgrid

Résolu
cpapy - 10 mars 2017 à 19:38
 cpapy - 11 mars 2017 à 17:54
Bonjour,


Je souhaite affecter la même largeur à toutes les colonnes d'un Mshflexgrid en sachant que le nombre de colonnes peut varier de 1 à 300

Mshflexgrid1.width / Nombre de colonnes ne permet pas d'obtenir le résultat que je souhaiterais.

En fonction du nombre de colonnes choisi, la largeur de la dernière colonne est soit trop petite soit trop grande.

Merci pour votre aide.

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 mars 2017 à 20:08
Bonjour,
Il faut pour cela :
1) se positionner (maflexgrid.colsel = (..N°...)
2) définir la position à donner à la colonne (maflexgrid.ColPos = .... valeur ...
Attention : les valeurs sont à exprimer en twips
0
bonjour Mr ucfoutu,

C'est ce que je fais

Exemple: en twips

NbreColonnes = 150
Largeur colonne = Mshflexgrid1.width / NbreColonnes
.
for i1 = 0 to Nbrecolonnes
. mshflexgrid1.colwidth(i1) = Largeur Colonne
next i1
.
Lorsque je change la valeur de NbreColonnes, dans certain cas, la dernière colonne est soit trop grande soit trop petite (Peut être un problème d'arrondi ou de GriDColonne qui ne sont pas comptabilisé dans le calcul de NbreColonnes ?)
.
Merci
0
bonjour Mr. ucfoutu,

Je viens de découvrir la cause de mon problème: Une instruction parasite.

Désolé pour le dérangement et encore merci pour votre aide.

Très cordialement.
0
Je me suis un peu avancé précédemment en disant avoir trouvé la solution à mon problème:

Exemple: Mshflexgrid1.width = 14535
.
Avec 150 colonnes, la taille d'une colonne est 14535/150 soit 96,9
Après avoir affecté ces 96,9 à mes 150 colonnes (Colwidth(x))
.
La taille réelle des colonnes après cette opération est de 90.
.
On perd donc 6,9 par colonne

Merci pour votre aide.
0
Rejoignez-nous