MsFlexgrid - Ajuster la largeur des colonnes

cs_Patrik Messages postés 95 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 10 octobre 2005 - 21 janv. 2003 à 13:46
Int19h Messages postés 58 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 19 juillet 2003 - 21 janv. 2003 à 17:17
Bonjour,

Je souhaite ajuster la largeur des colonnes de mon contrôle MsFlexgrid, après avoir lancer une requête Sql, au texte le plus long de chaque colonne de façon automatique.

Merci à ceux et à celles qui pourront m'apporter leur aide

@+

5 réponses

Int19h Messages postés 58 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 19 juillet 2003
21 janv. 2003 à 16:25
Salut

Pour modifier la largeur d'une colonne, on utilise ca :

MSHFlexGrid1.ColWidth(Num_Colonne) = 1545

il faut faire un petit calcul pour connaitre la valeur a mettre en fonction de la police (taille) et le nom de caracter.

++

Int19h
0
cs_Patrik Messages postés 95 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 10 octobre 2005
21 janv. 2003 à 16:45
Ok mais comment tu fais pour connaitre la longueur du contenu de la cellule qui soit la plus grande d'une colonne

Merci de m'éclairer

@+
0
Int19h Messages postés 58 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 19 juillet 2003
21 janv. 2003 à 16:49
Salut,

Avec un truc du genre :

Function LongMax()
' Mettre 1 si y'a une entete
max=0
for a=0 to MSHFlexGrid1.Rows-1
b$=MSHFlexGrid1.TextMatrix(a,Num_Colonne)
if len(b$)>Max then max=Len(b$)
next

LongMax = max
End Function

Avec ca, tu connais la longeur max...

++

Int19h
0
cs_Patrik Messages postés 95 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 10 octobre 2005
21 janv. 2003 à 17:10
La fonction me retourne le nbre de caractères max contenu dans la cellule de la colonne la plus grande, existe t'il un moyen de transformer l'unité pour obtenir des Twips (ce que reconnaît le MsFlexGrid)

Encore merci

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Int19h Messages postés 58 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 19 juillet 2003
21 janv. 2003 à 17:17
re²

Bon, pour savoir les Twips ecran on a la fonction : Screen.TwipsPerPixelX

Mais on aurra une correspondence : Pixel - Twips
Il faut donc pendre en compte la taille de la police de caracter utiliser. On peut la trouver facilement avec : MSHFlexGrid1.Font.Size

Apres rester un petit calcule a faire :
int(MSHFlexGrid1.Font.Size * Screen.TwipsPerPixelX * Max)

Ca doit donnée a peu pres un resultat correct...

++

Int19h
0
Rejoignez-nous