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

IHM Discussion :

Insideheight et windowheight [AC-2003]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 148
    Points : 69
    Points
    69
    Par défaut Insideheight et windowheight
    Bonsoir,

    Quelqu'un pourrait-il m'expliquer la diffrence entre ces deux propriétés svp ?

    Merci pour vos réponses.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 765
    Points
    7 765
    Par défaut
    Bonsoir,

    WindowHeight et WindowWidth s'appliquent à la fenêtre du formulaire (pourtour extérieur).
    InsideHeight et InsideWidth s'appliquent à l'intérieur de la fenêtre du formulaire.

    Par exemple, sur un formulaire classique, InsideHeight, c'est WindowHeight moins la hauteur ...
    - de la barre de titre de la fenêtre du formulaire
    - du bandeau contenant les boutons de déplacements
    - de la barre de défilement horizontal
    - de la bordure inférieure de la fenêtre du formulaire

    On peut aussi définir InsideHeight, comme la distance (en twips) entre le début (haut) de la section en-tête de formulaire et la fin (bas) de la section pied de formulaire.
    Cette hauteur change si on redimensionne la fenêtre et sera le plus souvent différente de la somme des hauteurs des sections (en-tête de formulaire, Détail, pied de formulaire).

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 148
    Points : 69
    Points
    69
    Par défaut
    Merci d'avoir répondu LedZeppII.

    J'ai trouvé ce code sur le site pour redimensionner un sous-formulaire :
    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
    Dim objSousForm As Object
        Dim frmSousForm As Form
        Dim nbMaxLignes As Long
     
        'Vos déclarations
        Set objSousForm = Me!TonSousForm
        Set frmSousForm = objSousForm.Form
        nbMaxLignes = 3     'limite la hauteur à n lignes et affiche le défilement vertical
     
     
        If frmSousForm.RecordsetClone.RecordCount <= nbMaxLignes Then
            frmSousForm.InsideHeight = frmSousForm.Section(acHeader).Height _
                                     + frmSousForm.Section(acFooter).Height _
                                     + frmSousForm.Section(acDetail).Height _
                                     * (frmSousForm.RecordsetClone.RecordCount _
                                      - frmSousForm.AllowAdditions)
            objSousForm.Height = frmSousForm.WindowHeight
            frmSousForm.ScrollBars = 0  'aucune barre de défilement
        Else
            frmSousForm.InsideHeight = frmSousForm.Section(acHeader).Height _
                                     + frmSousForm.Section(acFooter).Height _
                                     + frmSousForm.Section(acDetail).Height _
                                     * (nbMaxLignes - frmSousForm.AllowAdditions)
            objSousForm.Height = frmSousForm.WindowHeight
            frmSousForm.ScrollBars = 2  'barre de défilement verticale
        End If
    Ce que j'ai du mal à comprendre, c'est pourquoi calcule-t-on une valeur pour frmSousForm.InsideHeight, alors que l'on ne s'en sert plus après ? Et pourquoi se sert-on de frmSousForm.WindowHeight pour donner une valeur à objSousForm.Height au lieu de frmSousForm.InsideHeight ? Et comment cela se fait-il que frmSousForm.InsideHeight et frmSousForm.WindowHeight aient la même valeur ?

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 765
    Points
    7 765
    Par défaut
    Bonjour,

    Le code calcule la valeur qu'il faut donner à la propriété InsideHeight du formulaire intégré en tant que sous-formulaire dans un contrôle sous-formulaire.

    Le calcul consiste à calculer la somme des hauteurs des sections.
    Attention : les hauteurs sont fixes.
    Quel que soit le nombre d'enregistrements affichés, la hauteur de la section Détail est toujours la hauteur correspondant à un seul enregistrement.
    C'est pour ça qu'on la multiplie par le nombre d'enregistrements.

    Donc, le code calcule la hauteur totale et l'affecte à InsideHeight.
    WindowHeight s'ajuste automatiquement en conséquence.

    Ensuite on définie la hauteur (Height) du contrôle sous-formlaire, en lui affectant la valeur de la propriété WindowHeight
    du sous-formulaire, car celle-ci peut être supérieure à InsideHeight.
    Par exemple s'il y a une barre de défilement horizontal ou les boutons de navigations.

    Si WindowHeight est égal InsideHeight, c'est que ton sous-formulaire n'affiche rien d'autre que les trois sections.
    Et contrairement à un formulaire, un sous-formulaire n'a pas de bordures, ni de barre de titre.

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 148
    Points : 69
    Points
    69
    Par défaut
    Merci beaucoup pour tes lumières. Ca m'aidera pour la suite de mon projet.
    Tu trouveras sans doute beaucoup d'autres questions de moi sur le forum Access, on me dit souvent que je pose trop de questions...

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

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