REDIMENSIONNEMENT DU CONTROLE MSFLEXGRID ( PAS LE TABLEAU, MAIS LE CONTOUR )

cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012 - 5 févr. 2004 à 16:32
LogRaam (aka Gabriel Mailhot) Messages postés 60 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 25 avril 2005 - 6 févr. 2004 à 14:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/20159-redimensionnement-du-controle-msflexgrid-pas-le-tableau-mais-le-contour

LogRaam (aka Gabriel Mailhot) Messages postés 60 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 25 avril 2005
6 févr. 2004 à 14:22
Mmmmh, j'avais oublié un tout petit détail... dsl.

With MSF_Resultat
'Config
myRows& = .Rows - 1
myCols& = .Cols - 1
heightLimit& = 2700
widthLimit& = 6615

'Set initial position
.Move .Left, .Top, 300, 300

'Redim Columns
For vI& = 0 To myCols
If .Width < widthLimit Then
.Width = .Width + (.ColWidth(vI) + 10)
Else
.Width = widthLimit
vI = .Cols
End If
Next vI

'Redim Rows
For vE = 0 To myRows
If .Height < 2700 Then ' limite = 2700
.Height = .Height + (.RowHeight(vE) + 10)
Else
.Height = heightLimit
vE = .Rows
End If
Next
End With


MadLucas
LogRaam (aka Gabriel Mailhot) Messages postés 60 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 25 avril 2005
6 févr. 2004 à 14:20
Voici ce que je te suggère:

With MSF_Resultat
'Config
myRows& = .Rows - 1
myCols& = .Cols - 1
heightLimit& = 2700
widthLimit& = 6615

'Set initial position
.Move .Left, .Top, 300, 300

'Redim Columns
For vI& = 0 To myCols
If .Width < widthLimit Then
.Width = .Width + (.ColWidth(vI) + 10)
Else
.Width = widthLimit
vI = .Cols
End If
Next vI

'Redim Rows
For vE = 0 To myRows
If .Height < 2700 Then ' limite = 2700
.Height = .Height + (.RowHeight(vE) + 10)
Else
MSF_Resultat.Height = heightLimit
vE = .Rows
End If
Next
End With


C'est un peu plus rapide et c'est plus textuel. Comme ça tu évites de surcharger le code avec des REM. Mais bon c'est une question de goût; certains préfèreront un code avec beaucoup de REM et d'autres aimeront mieux "textualiser" à même le code pour aérer.


MadLucas
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
6 févr. 2004 à 09:42
J'ai bien compris tout cela. Je te dis juste que tu peux renseigner une variable "Hauteur" et une variable "Largeur" dans tes boucles for telles quelles sont et ne redimensionner qu'à la fin des deux boucles. Ca évite de redimensionner toin controle à chaque itération.
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
6 févr. 2004 à 08:28
effectivement ça pourais marché à condition que touetts les colones ou ligne on la même taille. malheureusement, c'est pas le cas.
c'est pour cette raison qu'une fois la limitte de taille atteinte, implémente directement la variable de réitération à sa borne de fin.
Comme ça dès que la taille est à mon maximum fixé par moi même.
il ne vérifie plus la taille et sort de la boucle.
en hauteur il fait environ une dizaine de lignes et en largeur environ 6 colones.
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
6 févr. 2004 à 08:28
effectivement ça pourais marché à condition que touetts les colones ou ligne on la même taille. malheureusement, c'est pas le cas.
c'est pour cette raison qu'une fois la limitte de taille atteinte, implémente directement la variable de réitération à sa borne de fin.
Comme ça dès que la taille est à mon maximum fixé par moi même.
il ne vérifie plus la taille et sort de la boucle.
en hauteur il fait environ une dizaine de lignes et en largeur environ 6 colones.
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
5 févr. 2004 à 16:32
Peut-être gagnerais tu en temps d'exécution si tu ne redimensionnais qu'une fois le controle, plutot qu'à chaque fois.

Ca doit être plus rapide de renseigner une variable les boucles For que de redimensionner dans les boucles. Imagine 120 colones et 12000 lignes...

++

Moustachu
Rejoignez-nous