Pb avec resize

cs_lu6fer Messages postés 131 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 21 juillet 2005 - 16 juin 2004 à 10:31
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 16 juin 2004 à 11:49
voila j'utilise ce code mais il ne fonctionne plus.
je ne c pas comment cela ce fait car mon prog n'a pas changer
Private Sub Form_Load()
OldWidth = Width
OldHeight = Height
End Sub

Private Sub Form_Resize()
On Error Resume Next
Dim XCoeff As Single
Dim YCoeff As Single
Dim Controle As Control
XCoeff = Width / OldWidth
YCoeff = Height / OldHeight
For Each Controle In Me
Controle.Move Controle.Left * XCoeff, Controle.Top * YCoeff, Controle.Widht * XCoeff, Controle.Height * YCoeff

Next
OldWidth = Width
OldHeight = Height
End Sub

7 réponses

capoueidiablo Messages postés 316 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 1 février 2010 1
16 juin 2004 à 11:06
Salut,Vérifie bien que OldWidth Width et OldHeight Height sont bien déclaré en public car sinon tu ne peux pas y faire référence dans ton resize.

je pence que ton next est inutile en effet ce n'est meme pas un label puisqu'il manque les ":" , de plus quand tu utilise "On Error Resume Next" je crois qu'il est inutile de créer un fonction "Next" signifiant que tu passe a l'instruction suivante. Si tu dois obligatoirement avoir :
OldWidth = Width
OldHeight = Height

alors essaille ca :
Private Sub Form_Resize()
On Error Goto Erreur
dim XCoeff ....
....
....

Erreur:
OldWidth = Width
OldHeight = Height
End Sub
--Capoueidiablo--
0
cs_lu6fer Messages postés 131 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 21 juillet 2005
16 juin 2004 à 11:18
le resultat et tjs le meme c'est a dire que les bouton de ma form ne s'agrandisse pas avec le changement de taille de ma form
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
16 juin 2004 à 11:20
Commence par commenter ton
On error Resume Next

Tu verras de quelle type d'erreur il s'agit.

Déjà, il faut que oldWidth et oldHeight soit définis en global sur ta feuille. ( Ca évite les divisions par zéro).

Ensuite, ... ben je cherche parce qu'il y en encore quelque chose qui cloche !

:o)

Manu
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
16 juin 2004 à 11:23
G TROUVE !!!

Private Sub Form_Resize()
'On Error Resume Next <-- commenté
Dim XCoeff As Single
Dim YCoeff As Single
Dim Controle As Control

XCoeff = Width / oldWidth
YCoeff = Height / oldHeight
For Each Ctr In Form1.Controls
Ctr.Move Ctr.Left * XCoeff, Ctr.Top * YCoeff, Ctr.Width * XCoeff, Ctr.Height * YCoeff

Next
oldWidth = Width
oldHeight = Height
'Form1.Refresh
End Sub

Tu avais mal écrit le Width, et le 'on error resume' te shuntait l'erreur
Manu
0

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

Posez votre question
capoueidiablo Messages postés 316 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 1 février 2010 1
16 juin 2004 à 11:24
Si c'est juste les boutons que tu veux resize, met :
For Each Button In Me
'Inutile de déclarer Button vue que VB le reconnais
--Capoueidiablo--
0
cs_lu6fer Messages postés 131 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 21 juillet 2005
16 juin 2004 à 11:31
non il n'y a pas que les bouton.
sinon ben malger cette grosse erreur d'etourderi le probleme et toujours la. et pour commenter on error resume next
je ne voi pas ce que tu veu dire
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
16 juin 2004 à 11:49
Le code suivant fonctionne très bien chez moi. Il suffisait de changer l'orthographe du mot "Width".


Public oldWidth As Long
Public oldHeight As Long

Private Sub Form_Load()
oldWidth = Width
oldHeight = Height
End Sub

Private Sub Form_Resize()
On Error Resume Next
Dim XCoeff As Single
Dim YCoeff As Single
Dim Controle As Control
XCoeff = Width / oldWidth
YCoeff = Height / oldHeight
For Each Controle In Me
Controle.Move Controle.Left * XCoeff, Controle.Top * YCoeff, Controle.Width * XCoeff, Controle.Height * YCoeff

Next
oldWidth = Width
oldHeight = Height
End Sub



Quant à commenter le 'On error resume', c'était juste un conseil pour repérer plus rapidement d'où vient ton erreur.
Manu
0
Rejoignez-nous