MshflexGrid - Ajuster la Taille des Colonnes au Texte
cs_Cpapy
Messages postés133Date d'inscriptionmercredi 30 octobre 2002StatutMembreDernière intervention25 septembre 2007
-
26 avril 2007 à 12:04
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
28 avril 2007 à 22:31
Bonjour à tous,
Mshflexgrid - Comment ajuster la largeur d'une colonne en fonction de son contenu
Si la première cellule de ma colonne contient "ABCD"
la seconde " " " " "D"
la troisième " " " " "EFGHIJKL"
Je souhaiterais que la taille de ma colonne soit ajustée pour afficher "EFGHIJKL" et pas un caractère de plus.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 avril 2007 à 21:59
Salut MPI;
Ton 100 ? tu es avec une résolution horizontale de 15 twips par pixel, n'est-ce-pas ? (je viens de te mettre sur la voie ... des bordures ... 2 bordures en pixels )
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 avril 2007 à 22:19
regarde :
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Sub Form_Activate()
Me.Move 0, 0, Screen.Width, Screen.Height
Me.FontSize = 15
Me.AutoRedraw = True
CurrentY = Me.Height / 8
Me.Print "largeur d'une bordure " & Str$(GetSystemMetrics(5)) & pixels
Me.Print " à laquelle il convient d'ajouter la marge de départ (2 pixels) et de fin (encore 2 pixels)"
Me.Print "ce qui fait au total 5 pîxels"
Me.Print "et il faut donc ajouter 5 x " & Screen.TwipsPerPixelX & " = " & 5 * Screen.TwipsPerPixelX; ""
End Sub
Mais ce n'est pas tout !
Tu a calculé sur la Font de la Form et pas de la FlexGrid, attention.
Il te faut écrire quelquepart avant d'utiliser TextWidth :
set me.font = La_FlexGrid.font (important)
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 avril 2007 à 22:31
Excuses (je n'ai compté qu'une bordure... quel âne je fais)C'est donc 2 + 2 + 2 6 x 15 90 twips
Corrige mon code
Me.Print "ce qui fait au total 6 pixels"
Me.Print "et il faut donc ajouter 6 x " & Screen.TwipsPerPixelX & " = " & 6 * Screen.TwipsPerPixelX; "