|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Mettre à l'echelle tous les controles d'une frame [ Divers / General ] (lechti62)
Informations & options pour cette discussion
samedi 21 juillet 2007 à 12:44:50 |
Mettre à l'echelle tous les controles d'une frame

lechti62
|
Bonjour, j'ai plusieurs controles images contenus dans une frame, j'aimerai que tous ces controles soient mis à l'echelle de la frame, dans le cadre de la création d'un zoom. Là il me faudrait définir toutes les propriétés height et width pour chacun des controles et vu le nombre que j'ai à faire j'aime savoir si il n'y a pas autre chose. Genre de façon automatique ou toutes les images se réduisent à la meme echelle proportionnellement à la taille height et width de la frame, comme ça je n'ai à m'occuper de zoomer et dezoomer la frame, et tous les controles d'image s'ajustent.
Est ce possible ? si oui, comment ?
Merci à vous.
|
|
|
samedi 21 juillet 2007 à 13:56:00 |
Re : Mettre à l'echelle tous les controles d'une frame

jmfmarques
|
Bonjour,
Le mieux est sans aucun doute : 1) de créer un groupe de contrôles indexés 2) d'utiliser un redimentionnement de tous les contrôles du groupe en fonction du redimensionnement du Frame. Il suffit pour celà : a) de relever les dimensions originelles du Frame au chargement b) de déterminer le coefficient k de redimensionnement du Frame c) d'appliquer ce coefficient à chacune des propriétés (left, top, width et heught) de tes contrôles images encore faut-il avoir pensé àmettre à True la propriété Stetch de tes contrôles images, bien évidemment.
Voilà ! tu as là tous les éléments qu'il te faut connaître. Le reste relève maintenant de ta seule volonté à développer ...
|
|
|
samedi 21 juillet 2007 à 14:47:28 |
Re : Mettre à l'echelle tous les controles d'une frame
|
samedi 21 juillet 2007 à 15:12:22 |
Re : Mettre à l'echelle tous les controles d'une frame

lechti62
|
Merci Mortalino, je vais essayer ce code mais il ressemble à ceux que j'ai déjà testé. Ce qui se passe dans ceux que j'ai testé c'est que tous les controles d'une feuillent se redimensionnent bien en fonction de la taille de la feulle. Moi ce que je veux c'est la même chose mais uniquement pour les controles contenus dans une frame.
J'ai donc essayé dans les codes similaires au tien de changer tout ce qui etait relatif à FORM1 par FRAME1, mais ça ne fonctionnais pas, mais je vais voir avec le code que tu donne si il se passe autre chose.
|
|
|
samedi 21 juillet 2007 à 15:19:58 |
Re : Mettre à l'echelle tous les controles d'une frame

mortalino
|
Oui, t'auras quelques modifs à faire pour pointer vers les dimensions de ta Frame;, mais ça devrait pas être trop long à faire ! t'as essayé juste avec : Call .MyControls.AddAll( Me Frame1) Vu que le Frame est un objet Container, peut-être que ça fonctionnera (jamais essazyé) @++ ( Nouveau forum : Exclusivement Office & VBA/STRONG>
|
|
|
samedi 21 juillet 2007 à 19:11:42 |
Re : Mettre à l'echelle tous les controles d'une frame

lechti62
|
et non ça ne fonctionne pas, j'ai un joli type incompatible (:
|
|
|
samedi 21 juillet 2007 à 19:16:37 |
Re : Mettre à l'echelle tous les controles d'une frame
|
samedi 21 juillet 2007 à 19:17:43 |
Re : Mettre à l'echelle tous les controles d'une frame

lechti62
|
quant aux modifs c'est la jungle et la croix et la baniere, je pense qu'il y'a moyen de faire plus simple si seulement ça fonctionnait.
Moi j'ai ça qui fonctionne mais uniquement en redimensionnant tous les controles d'une feuille et non d'une frame. En le modifant avec deux boutons + et - incrémentant la frame.width ou la décrémentant, ça ne donne rien. ce code ne marche qu'avec une form. Qui a une idée ?
Public Sub RedimForm() Dim Form1 As Form Set Form1 = Screen.ActiveForm If (Form1.WindowState = vbMinimized) Then Exit Sub End If Static Longueur As Long Static Hauteur As Long Dim PropLongueur As Single Dim PropHauteur As Single If ((Longueur > 0) And (Hauteur > 0)) Then PropLongueur = Frame1.Width / Longueur PropHauteur = Frame1.Height / Hauteur Dim Ctrl As Control On Error Resume Next For Each Ctrl In Form1.Controls Ctrl.Left = CInt(Ctrl.Left * PropLongueur) Ctrl.Top = CInt(Ctrl.Top * PropHauteur) Ctrl.Width = CInt(Ctrl.Width * PropLongueur) Ctrl.Height = CInt(Ctrl.Height * PropHauteur) Next On Error GoTo 0 End If Longueur = Frame1.Width Hauteur = Frame1.Height End Sub
|
|
|
samedi 21 juillet 2007 à 19:21:45 |
Re : Mettre à l'echelle tous les controles d'une frame

lechti62
|
Pour répondre à jmfmarques bien sur c'est ce qui fonctionnerai mais je n'ai pas que des images, j'ai d'autres controles comme des boutons, et là pas de strech pour ceux là. J'aurai préféré un redim automatique selon la frame. rien
|
|
|
samedi 21 juillet 2007 à 19:31:11 |
Re : Mettre à l'echelle tous les controles d'une frame

jmfmarques
|
Réponse acceptée !
1)
Il ne te viendrait pas à l'idée de mettre la condition suivante dans ta boucle Fort Each :
If ctrl.Container Is Frame1 Then
Non ?
2) Il ne te viendrait pas à l'idée d'utiliser TypeOf (voir ton aide en ligne) pour connaître le type du contrôle, non Plus ?
3) Il ne te viendrait pas non plus à l'idée d'utiliser tout bêtement un groupe d^'images indexées nommées machinchouette(0), machinchouette(1),....... machinchouette(n),
et de faire un test élémentaire sur ctrl.Name (puisque ce ne serait alors forcément une de tes images ?)
Bref... Réveille-toi un peu.
Reviens si tu as encore une difficulté, mais là, vraiment... Je ne vois pas ce qui te manque !...
|
|
|
Cette discussion est classé dans : images, controles, echelle, frame, height
Répondre à ce message
Sujets en rapport avec ce message
Frame et groupement de controles [ par curl ]
Bonjour,cette question a surement déjà été posée mais je n'ai pu trouver de réponse dans les archives.Comment grouper des controles ***déjà existants*
Frame et groupement de controles [ par curl ]
Bonjour,cette question a surement déjà été posée mais je n'ai pu trouver de réponse dans les archives.Comment grouper des controles ***déjà existants*
Controles d'une frame [ par zebiker ]
Bonjour,Est-ce possible de mettre tous les controles (checkbox...) d'une frame en "ENABLED= False" en un clique sur un bouttonMerci, d'avancezebiker
Grouper des controles dans une frame [ par ZamFred ]
Il est aisé de grouper des controles dans une frame quand on crée ces controles directement par l'interface graphique de VB.Mais comment définir ce re
VBA : insertion de controles dans un frame [ par Vipers ]
j'ai des contrôles sur un form de VBa sous Office 97je créé une frame dois- je recréer obligatoiremetn les oblets existants pour qu'ils apparaissenet
controls dans un frame [ par stipe ]
bonjour,sous VB6, j'ai créé un frame et mis des controls dedans.comme je sais jamais ce que je veux, maintenant je veux virer le frame, mais garder su
évènements pour controles créés à l'éxecution... [ par bb16 ]
Bonjour à vous, J'ai un userform qui crée x sur y controles-images en fonction de la var nben. Je souhaite qu'en cliquant sur l'une d'elles pendant l'
echelle [ par zairino ]
Bonjour a tous,Dans une precedente question j avais besoin de redimentionner une picture box avec l affichage de point qui devait aller de 0,003 a 100
memory en vb6, probléme d'affichage dans les picturebox au chargement de la frame [ par grand_dragon_rouge54 ]
Voilà.Je dois réaliser un memory en vb6 (Pour ceux qui ne s'en souvienne pas, on retourne deux cartes à la suite et il faut retrouver des paires).Mes
deux controles identiques [ par yoda00 ]
bonjour et encore merci pour toutes l'aide !!!j'ai une frame avec plein de combo...et une autre frame avec les meme combo ... sauf qu'il y a des champ
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|