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)

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

Membre Club

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

mortalino

Membre Club


salut,

j'ai une source pour ça :
http://www.vbfrance.com/codes/METHODE-ZOOM-SUR-FORM-CONTROLES_40519.aspx

@++


( Nouveau forum : Exclusivement Office & VBA/STRONG>

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

Membre Club


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

mortalino

Membre Club


Test en Pas à pas... ma classe n'est pas difficile à manipuler
Si j'ai le temps, je jette un oeil (voir les deux) 

@++


( Nouveau forum : Exclusivement Office & VBA/STRONG>

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

Membre Club
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 !...


1 2

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


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 1,310 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.