Code pour redimensionner tous vos controles proportionnellement au redimensionnement de la fenetre

Soyez le premier à donner votre avis sur cette source.

Vue 8 497 fois - Téléchargée 865 fois

Description

En incluant ce code dans votre projet, ceci garantie qu'à chaque fois que l'utilisateur va redimensionner la fenêtre, tous vos contrôles seront toujours placé à la même place proportionnellement à celle où ils étaient auparavant !
Plein écran, fenêtré etc... votre form sera toujours la-même chez tous !

Ceci enlève aussi les problèmes de résolution d'écran : inutile de vous casser la tête à programmer dans la résolution à laquelle tournera l'appli !
TRANKIL en somme...

Source / Exemple :


'ya un zip aussi pour illustrer !
'------------------------------------
'code à placer dans une feuille nommer form1
'2 procédures en tout (form_load et form_resize)

'ATTENTION CECI FAIT DU TAG DES OBJETS UNE VALEUR OCCUPEE :
'en utilisant cette technique,
'le tag de chaque objet devient
'une valeur nécessaire'à son foncionnement,
'donc inutilisable pour toute autre chose de votre crue...

Private Sub Form_Load()
On Error Resume Next
  Me.Tag = CStr(Me.Width) & ":" & CStr(Me.Height)
  For Each object In Me
    object.Tag = CStr(object.X1) & ":" & CStr(object.Y1) & ";" & CStr(object.X2) & "!" & CStr(object.Y2)
    object.Tag = CStr(object.Width) & ":" & CStr(object.Height) & ";" & CStr(object.Left) & "!" & CStr(object.Top)
  Next object
End Sub

Private Sub Form_Resize()
On Error Resume Next
  For Each object In Me
    'pour les graphiques
    object.X1 = Val(Mid(object.Tag, 1, InStr(object.Tag, ":") - 1)) * Me.Width / Val(Mid(Me.Tag, 1, InStr(Me.Tag, ":") - 1))
    object.Y1 = Val(Mid(object.Tag, InStr(object.Tag, ":") + 1, Len(object.Tag) - InStr(object.Tag, ":") + 1)) * Me.Height / Val(Mid(Me.Tag, InStr(Me.Tag, ":") + 1, Len(Me.Tag) - InStr(Me.Tag, ":") + 1))
    object.X2 = Val(Mid(object.Tag, InStr(object.Tag, ";") + 1, Len(object.Tag) - InStr(object.Tag, ";") + 1)) * Me.Width / Val(Mid(Me.Tag, 1, InStr(Me.Tag, ":") - 1))
    object.Y2 = Val(Mid(object.Tag, InStr(object.Tag, "!") + 1, Len(object.Tag) - InStr(object.Tag, "!") + 1)) * Me.Height / Val(Mid(Me.Tag, InStr(Me.Tag, ":") + 1, Len(Me.Tag) - InStr(Me.Tag, ":") + 1))
    'pour le reste
    object.Width = Val(Mid(object.Tag, 1, InStr(object.Tag, ":") - 1)) * Me.Width / Val(Mid(Me.Tag, 1, InStr(Me.Tag, ":") - 1))
    object.Height = Val(Mid(object.Tag, InStr(object.Tag, ":") + 1, Len(object.Tag) - InStr(object.Tag, ":") + 1)) * Me.Height / Val(Mid(Me.Tag, InStr(Me.Tag, ":") + 1, Len(Me.Tag) - InStr(Me.Tag, ":") + 1))
    object.Left = Val(Mid(object.Tag, InStr(object.Tag, ";") + 1, Len(object.Tag) - InStr(object.Tag, ";") + 1)) * Me.Width / Val(Mid(Me.Tag, 1, InStr(Me.Tag, ":") - 1))
    object.Top = Val(Mid(object.Tag, InStr(object.Tag, "!") + 1, Len(object.Tag) - InStr(object.Tag, "!") + 1)) * Me.Height / Val(Mid(Me.Tag, InStr(Me.Tag, ":") + 1, Len(Me.Tag) - InStr(Me.Tag, ":") + 1))
  Next object
End Sub

Conclusion :


Merci de me laisser VOS COMMENTAIRES !
@+ les programmeurs et programmeuses (ça fait bizare comme mot... ya bien un féminin à ce mot ?)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Galactus13
Messages postés
328
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
2 décembre 2019
1
Parfait ! sa marche même dans mon OCX !
cs_phildw
Messages postés
2
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
6 avril 2010

Je tire ma révérence ! Chapeau, et bien structuré.
Oui, même en 2010, il est toujours solicité.
Merci
azerty99_71
Messages postés
55
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
9 décembre 2005

Tous simplement génial ton code !!!

10/10 !!!

Azerty99_71
maxdebide
Messages postés
13
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
26 juillet 2004

Niquel, tu me sauve la vie et beaucoup de temps.
Merci
cs_rene38
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
Suggestion pour celliphane :
Pour la taille des caractères,
Dans Form_Load, mettre CStr(object.FontSize)
dans object.ToolTipText qui est rarement utilisé.
Le redimensionnement ne pose alors plus de problème.
Evidemment, si on a besoin de ToolTipText ....

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.