begin process at 2012 02 13 02:46:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > CODE POUR REDIMENSIONNER TOUS VOS CONTROLES PROPORTIONNELLEMENT AU REDIMENSIONNEMENT DE LA FENETRE

CODE POUR REDIMENSIONNER TOUS VOS CONTROLES PROPORTIONNELLEMENT AU REDIMENSIONNEMENT DE LA FENETRE


 Information sur la source

Note :
8,7 / 10 - par 10 personnes
8,70 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Niveau :Initié Date de création :17/02/2002 Date de mise à jour :17/02/2002 17:32:05 Vu / téléchargé :6 640 / 727

Auteur : celiphane

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note


 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

  • '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
'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 ?)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source .NET (Dotnet) [.NETV2] CLASSCOM - CLASSE DE COMMUNICATION EN RÉSEAU SIMPLI...
Source avec Zip Source avec une capture COMPARAISON ENTRE 2 CHAINES, RETOURNE UN POURCENTAGE DE RESS...
Source avec Zip CLASS POUR TRANSFERER DES FICHIERS VIA WINSOCK AVEC CONTROLE...
Source avec Zip Source avec une capture CLASS POUR GENERER DYNAMIQUEMENT DES CONTROLES DANS UN CONTE...
Source avec Zip MOTEUR DE SERVEUR FTP OBJET ET FONCTIONNEL TESTE SOUS FILEZI...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip Source avec une capture JEUX DE VERITÉ ET DE FIDELITÉ par billatosco
Source avec Zip IMAGELOARDER par vkitumaini
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN CALENDRIER DE POCHE par Le Pivert
Source avec Zip RECHERCHE D'UN ENREGISTREMENT DANS UNE DATATABLE ET POSITION... par erdna

Commentaires et avis

Commentaire de Dino le 18/02/2002 10:47:58

Fabulissimo !!!!!!!! Seul problème : la taille des polices qui ve varie pas.

Commentaire de celiphane le 18/02/2002 13:57:01

Merci,
et oui en effet les polices ne bougent pas, j'ai remarqué ce problème, et des que j'aurais fini le projet sur lequel je suis en ce moment, je réattaque ce problème.
(qui ma foi n'a pas l'air bien dur si l'on considère qu'il suffira de faire évoluer la propriété FontSize de chaque objet selon la même proportion que l'objet lui-même...)
@ b1tot donc...
merci encore

Commentaire de KifKif le 13/03/2002 14:14:02

Merci pour la programmation des fenêtres dont j'ai immédiatement profité pour
mettre le code dans mon programme lotto.

Commentaire de acidtoxik le 12/05/2002 16:16:14

c pas mal !!! pratique mais ya d bugs si tu met ta résolution d'écran en 1280*1024

Commentaire de acidburn23 le 16/05/2002 14:01:05

Il y a un probléme lorsque les forms ne s'appelle pas Form1. Sur ma Form qui s'appelle VBTrend, un message d'erreur ("variable non déclarée") sur "OBJECT".

Si tu as une solution ça serait bien!

Commentaire de celiphane le 16/05/2002 14:26:00

acidtoxik : Ha bon ?

acidburn23 : non non, ce n'est pas un erreur du code, mais de toi ! Je m'explique : tu dois OBLIGATOIREMENT avoir inscrit option explicit quelque part dans ton code, de ce fait, la variable object n'est pas connu !
2 solutions :
1 - tu vires "option explicit"
2 - si tu tiens trop à "option explicit", dans ce cas déclare object par
"dim object as object" (oui je sais c'est con à lire...)

Si une autre erreur intervient du mm genre (variable inconnu),  penser tous à la déclarer si vous avez spécifié "option explicit" !!!!!!
Et voili, tchao bonsoir

Commentaire de webwhisky le 17/07/2002 19:17:18

cool tb

Commentaire de Jujufouq le 28/10/2002 11:20:36

Excellent, tu mérites une fière chandelle!

Commentaire de Rrominet le 13/12/2002 22:44:41

c'est pas un peu lourd comme code ??
si on a entre 40 et 50 contrôles à l'écran je pense que ça peut ralentir vachement le chargement des pages ? non ?

Commentaire de celiphane le 14/12/2002 01:35:43

C'est exact Rrominet, c'est un code très dense... cela dit, crois-tu pouvoir redimensionner tous les ctrls par rapport à leur taille et position original sans avoir à y référer lors du redimensionnement ? Tu veux réinventer les maths ? Je suis partant ;)  ! Pis au passage, on simplifira qq trucs et notions non ? lol

Plus sérieusement, je suis tout à fait d'accord avec toi, mais vois-tu, à ma connaissance, même s'il existe d'autres méthodes, elles reprennent certainement ce type de schéma.

Pour avoir ça en plus souple dans ton code, télécharge une DLL qui fait la même chose mais en C++. Il en existe plein... mais elles sont sharewares dont payantes pour la plupart !

Et puis avec ce code, je voulais surtout montrer une traduction de ces fameuses DLL en VB.

Mais je reste d'accord avec toi, ça doit ralentir si ya une 100aine de ctrl, mais c'est du VB donc tu dois bien t'y attendre... ;)

Commentaire de bigup le 12/03/2003 16:41:00

comment agrandir la combobox en hauteur?

Commentaire de fleox le 05/09/2003 00:45:30

Bonjour à tous, j'ai un petit gros problème, je voulais utiliser ce script mais malheureusement je ne m'y connais pas du tout en VB .... j'ai fait un site en flash et j'aimerais que ce soit redimensionner en suivant la "redimension" de la fenetre. Quelqu'un pourrait t'il maider a integrer ce script dans ma page html??? merci de votre aide fleox@subneo.com

Commentaire de celiphane le 05/09/2003 09:21:53

ola, je laisse cet opportunité de répondre à mes cher collègues VBfranciens, car ce code n'a pas du tout été fait pour du html...
Il utilise des contrôles VB, avec leur propriétés, notament le tag.
Dur dur ://

Commentaire de laurent180 le 18/09/2003 20:27:49

salut, suis debutant en vb je trouve cet application génial mais je comprend pas trop les lignes de code. Je devrai le refaire j'en serai incapable si qq pourrais me commanté la source sa serai génial pour moi. merci
PS: le tuto sur les  cliens serveur est superbe.

Commentaire de rene38 le 04/03/2004 15:29:03

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 ....

Commentaire de maxdebide le 22/06/2004 11:57:15

Niquel, tu me sauve la vie et beaucoup de temps.
Merci

Commentaire de azerty99_71 le 20/05/2005 00:00:15

Tous simplement génial ton code !!!

10/10 !!!

Azerty99_71

Commentaire de phildw le 03/04/2010 18:02:31

Je tire ma révérence ! Chapeau, et bien structuré.
Oui, même en 2010, il est toujours solicité.
Merci

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,279 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales