IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB]Agrandissement de fenêtre


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [VB]Agrandissement de fenêtre
    Bonjour, je suis nouveau ici et dans le monde du devellopement également
    j'ai une question qui concerne Visual Basic.
    j'utilise la version 6.0
    comment faire pour que les controles d'une fenêtre soit réajusté lors de l'agrandissement de la fenêtre??
    car là si je clic sur agrandissement la fenêtre s'agrandi mais les boutons et tout les controles garde leur positionnement !!!!
    dans l'attente d'une réponse,merci a vous

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    D'accord, tu es nouveau, alors bienvenue

    Et commence donc par Lire les règles du forum

    Pour cette fois, je te donne le lien
    http://vb.developpez.com/faq/?page=Form#form_resize

    la prochaine fois, c'est suppression à vue

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu as la propriété zoom mais généralement le résultat n'est pas terrible. Sinon, tu établis un rapport entre la taille d'origine de ta fenêtre et sa taille après agrandissement et tu appliques ce taux à tous tes contrôles d'un seul coup d'un seul
    Juste pour l'idée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Hauteur = MaForm.Height 'Hauteur actuelle
    Largeur = MaForm.Width  'Largeur actuelle
    'Nouvelles dimensions
    MaForm.Height = 200
    taux = Int(500 / Largeur * 100) / 100
    MaForm.Width = Largeur * taux
    For Each LeControl In MaForm.Controls
        LeControl.Top = LeControl.Top * taux
        LeControl.Left = LeControl.Left * taux
        LeControl.Height = LeControl.Height * taux
        LeControl.Width = LeControl.Width * taux
    Next
    Tu dis

    A+

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Ce ne sera toutefois pas joli joli, même comme çà...

    Les caractères garderont leur taille, entre autres...et se "perdront" dans des contrôles aggrandis...

    et quid de la présence éventuelle de lines (avec des X1, Y1, ...) ?

    Reste une question de fonds : S'il s'agit de mettre celà dans un événement "de début" (Form_Load, Form_Activate...) on comprend mal pourquoi n'avoir pas décidé de donner ces dimensions nouvelles comme dimensions imposées au stade du développement.
    S'il s'agit, au contraire, d'utiliser un click sur un bouton quelconque pour changer ces dimensions : gaffe à :
    1) ne pas cliquer plusieurs fois sur le même bouton !!
    2) enregistrer le "taux" pour pouvoir, au besoin, revenir en arrière à l'aide d'un 2ème bouton,
    et j'en passe.... (les images, y compris dans les pictureboxes; etc...)

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    jmfmarques a dit
    Les caractères garderont leur taille, entre autres...et se "perdront" dans des contrôles aggrandis...
    Je ne me souvenais plus que j'avais un zoom dans le form que j'ai utilisé pour l'exemple, les caractères s'étaient miraculeusement adaptés...
    Voici le code utilisé avec le zoom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub DimensionFenêtre()
        Dim HauteurActuelle, LargeurActuelle, HauteurEcran, Echelle
        HauteurActuelle = MaForm.Height
        LargeurActuelle = MaForm.Width
        With Application
            HauteurEcran = .UsableHeight  'donne la hauteur actuelle de l'ÉCRAN
        End With
        Echelle = Int(HauteurEcran / HauteurActuelle * 100)
        With MaForm
            .Top = 1
            .Left = 1
            .Zoom = Echelle
            .Height = HauteurActuelle * (1 + Echelle / 100)
            .Width = LargeurActuelle * (1 + Echelle / 100)
        End With
    End Sub
    Pour des explications, tu siffles

    A+

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    jmfmarques a dit
    Reste une question de fonds : S'il s'agit de mettre celà dans un événement "de début" (Form_Load, Form_Activate...) on comprend mal pourquoi n'avoir pas décidé de donner ces dimensions nouvelles comme dimensions imposées au stade du développement.
    Tu peux avoir besoin d'adapter ta fenêtre à la définition de l'écran. C'était le cas chaque fois que j'ai eu à redimensionner la fenêtre. (en VBA, je ne connais pas les propriétés disponibles en VB)

    Voilà

    A+

  7. #7
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut Re: Agrandissement de fenêtre en VB
    Citation Envoyé par Siglle
    j'ai une question qui concerne Visual Basic.
    j'utilise la version 6.0
    J'ai de gros doutes, pour ne pas dire une certitude, que zoom n'existe pas en VB6 pour ce type d'objet

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je vois que je suis vraiment très pauvre avec ma version VB5...
    Quand je pense qu'il m'a fallu développer un .ocx pour que mes applis s'adaptent à la résolution des utilisateurs...
    J'en pleurerais, tiens.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    alors désolé pour ne pas etre passé lire le réglement !!!
    merci pour vos réponses !!! mais je n'ai pas tout saisi!!! quesque c'est la proprieté Zoom ??? je sais lancé moi des tomates rire mais bon de bonnes claques permette de progresser

  10. #10
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    je repète que la propriété zoom n'existe pas pour un objet form en VB6, uniquement en VBA

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Donc, zoom n'existe pas en VB... Si VB pose prblème alors pourquoi ne pas tenter d'utiliser la méthode 1 ?
    Je l'ai modifiée pour la taille des caractères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub DimensionFenêtre()
        Dim LeControl As Control
        Dim TaillePolice
        Dim HauteurActuelle As Long, LargeurActuelle As Long
        Dim LargeurEcran As Long, HauteurEcran As Long, Echelle As Long
        HauteurActuelle = UserForm1.Height
        LargeurActuelle = UserForm1.Width
        With Application
            HauteurEcran = .UsableHeight  'donne la hauteur actuelle de l'ÉCRAN
            LargeurEcran = .UsableWidth
        End With
        Echelle = Int(HauteurEcran / HauteurActuelle * 100)
        UserForm1.Height = HauteurEcran
        UserForm1.Width = LargeurEcran
        UserForm1.Top = 0
        UserForm1.Left = 0
        For Each LeControl In UserForm1.Controls
            LeControl.Top = Int(LeControl.Top * Echelle / 100)
            LeControl.Left = Int(LeControl.Left * Echelle / 100)
            LeControl.Height = Int(LeControl.Height * Echelle / 100)
            LeControl.Width = Int(LeControl.Width * Echelle / 100)
            TaillePolice = Int(LeControl.Font.Size * Echelle / 100)
            LeControl.Font.Size = TaillePolice
            'MsgBox LeControl.Name  'Laissé pour la syntaxe
            'MsgBox TypeName(LeControl) 'type du contrôle CommandButton, TextBox, ...
        Next
    End Sub
    Si des images font partie des contrôles, il est nécessaire de leur éviter la modification de la taille des caractères et donc de faire un test sur "TypeName"

    Tu dis

    A+

    Edit
    En VB, Thierry, je ne sais pas mais en VBA, je place l'appel de cette procédure dans Userform_Initialise

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour tout c'est conseil !! me voilà pret pour faire mes experiences j'aime bien chercher des nouveaux trucs mais bon seul c pas évident !!!
    j'aurais bientot une question sur Visual basic 6.0 et excel !! je dois la poster où?
    heu pardon de vous importuner encore mais comment on fais pour mettre résolu ????? afin de ne pas deranger le site ce qui est normal
    merci a tous

  13. #13
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    tu cliques sur le bouton en bas a gauche de ce topic

  14. #14
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Pour ce qui est des traitements de caractères :
    Jeter un coup d'oeil à mes 2 derniers messages ici :
    http://www.developpez.net/forums/vie...d5077e#2570981

    Et ne plus se préoccuper de la Police...
    Les calculs à faire sont l'inverse de ceux que devra faire bb62, bien évidemment... mais : les opérations étant des opérations, les résultats obtenus ne correspondront pas toujours à une taille acceptée par la police... et il va donc falloir choisir le moins mal possible... le nombre de points, en fonction de la police choisie... Mais également : pour un aggrandissement, c'est moins difficile que pour un "rapetissement" car, certains rapetissements risquent de conduire à des tailles trop petites pour la police....
    Alors, comment faire pour rester précis : Hé bien ma foi : ouvrir la police concernée, la copier temporairement, et... la transformer un peu (les APIs de Windows sont pour cela d'un grand secours...). Fastoche, non ?
    En espérant que les polices utilisées ne soient pas trop nombreuses (différentes)...
    Ce n'est finalement pas si simple que cela, n'est-ce-pas, d'adapter à la résolution de l'écran de l'utilisateur final....
    Faudra également utiliser d'autres trucs de l'espèce pour les images et les PictureBoxes...
    + un salut à Ousk'eln'or

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fixer taille panel quand agrandissement max fenêtre
    Par senv33 dans le forum Débuter
    Réponses: 8
    Dernier message: 23/02/2010, 16h45
  2. Problème de réduction et d'agrandissement des fenêtres
    Par kheldoun ahmed dans le forum Delphi
    Réponses: 3
    Dernier message: 22/07/2007, 18h48
  3. Réponses: 2
    Dernier message: 15/02/2007, 11h32
  4. agrandissement de fenêtre
    Par kirouha dans le forum Access
    Réponses: 5
    Dernier message: 17/07/2006, 10h51
  5. Réduction / agrandissement de fenêtres
    Par StarMusic dans le forum Composants VCL
    Réponses: 3
    Dernier message: 09/10/2003, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo