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 :

Animation d'un bouton ou d'un champ dans un formulaire


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mars 2012
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 341
    Points : 111
    Points
    111
    Par défaut Animation d'un bouton ou d'un champ dans un formulaire
    Bonjour,

    Est-il possible de créer une animation d'un bouton ou d'un Controle dans un formulaire
    Sur l'ouverture d'un formulaire provoquer le déplacement d'un bouton ou d'un controle de haut en bas par exemple en le voyant se déplacer

    Merci pour votre aide

  2. #2
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Bonjour

    Oui, c'est possible à-priori, en ajustant les propriétés de position du contrôle au sein d'une boucle dont tu contrôles la durée du pas d'itération avec l'horloge.

    Disons que sur la propriété d'ouverture du formulaire, tu risques de passer du temps à le faire pour des résultats pas forcément maîtrisés. Je ne sais pas trop. Tu as une vraie bonne raison de faire ça ?

  3. #3
    Membre régulier
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mars 2012
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 341
    Points : 111
    Points
    111
    Par défaut
    Bonjour,

    Merci pour ta réponse
    Aurais tu un exemple de code VBA car je ne suis vraiment pas expert
    Oui j'ai 2 applications l'une pour positionner des contrôles pour montrer l'avancement d'un projet et l'autre pour créer des animations sur des boutons de menu la 2eme application est plus d'ordre esthétique
    Merci pour ton aide

  4. #4
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Par exemple, pour modifier des propriétés d'un contrôle, en fonction d'une variable, dans un formulaire en mode simple, au moment ou un nouvel enregistrement apparaît.

    Nous avons un champ nommé Valeur qui va de 1 à 20
    un contrôle nommé "Texte0" dont la largeur va dépendre de la Valeur
    On veut que la largeur de Texte0 soit au minimum de 1cm et grandisse de 1 millimètre pour chaque Valeur.

    Dans l'événement sur activation, tu places un code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Current()
        Me!Texte0.Width= (1 + Me!Valeur/10 ) * 567    
    End Sub
    567 est le nombre de twips (unité de mesure des formulaires) qu'il faut pour faire un centimètre.

    Pour faire une animation, c'est un peu plus complexe. Sur l'événement Chargement de ton formulaire tu veux qu'un contrôle Texte0 se déplace à droite d'un millimètre dix fois, puis à gauche 10 fois en une seconde à partir d'une position connue.

    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
    28
    Private Sub Form_Load()
        Dim lngIndice As Long
        Dim lngPosition As Long
        Dim sngDurée As Single
     
        lngPosition= Me!Texte0.Left
        sngDurée = 1 / 20
     
        For lngIndice = 1 to 10
            Attente sngDurée
            Me!Texte0.Left= lngPosition + lngIndice * 567 / 10
        Next
     
        For lngIndice = 10 to 1 Step -1
            Attente sngDurée
            Me!Texte0.Left= lngPosition + lngIndice * 567 / 10
        Next
     
    End Sub
     
    Sub Attente(prmsngDurée As Single)
        Dim sngArrêt As Single
     
        sngArrêt = Timer + prmsngDurée
        Do Until Timer > sngArrêt
            DoEvents
        Loop
    End Sub
    Essayes quand même d'abord ce code dans un événement clic de ton formulaire avant de le placer au chargement.

  5. #5
    Membre régulier
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mars 2012
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 341
    Points : 111
    Points
    111
    Par défaut
    Bonsoir,

    Merci beaucoup pour ces 2 propositions.
    Pour le 1er exemple, il m'affiche un message d'erreur :
    "Erreur d'exécution 2465
    Microsoft Access ne trouve pas le champs "Valeur" auquel il fait référence dans votre expression"


    Pour le 2ème exemple ça marche tip top !
    Quelle code vba permet de faire la même chose de haut en bas ?

    Merci à toi

  6. #6
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Bonsoir Franck

    Là, il faut jouer un peu, creuser. C'est ludique, le code. Tu as l'ensemble des propriétés (en Anglais) des formulaires à ta disposition pour jouer et l'aide aussi avec F1. Les quatre propriétés du contrôle concernant sa position sont Top et Left, Height et Width.

  7. #7
    Membre régulier
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mars 2012
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 341
    Points : 111
    Points
    111
    Par défaut
    Bonsoir
    Merci pour ta réponse je vais mettre tout ça en application en essayant de faire une animation sympa :-)
    Bien a toi
    Franck

  8. #8
    Membre régulier
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mars 2012
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 341
    Points : 111
    Points
    111
    Par défaut
    Bonjour,

    Je souhaiterai qu'à l'ouverture de mon formulaire le champs "Texte0" s'élargisse d'une certaine valeur.
    Je ne sais pas comment adapter le code ci-dessus qui me permet de déplacer ce champ vers la droite d'une certaine valeur

    Une petite demande supplémentaire : j'ai également constaté que l'animation du contrôle sur chargement du form ne se voit uniquement lorsque l'on passe de l'état du formulaire mode création à aperçu mais lorsque l'on ouvre directement le formulaire sans passé par son son état en mode création j'ai l'impression que l'animation se fait le temps du chargement du form et donc lorsqu'il est complètement ouvert on ne voit pas le champ bouger.
    Faut-il mettre une temporisation supplémentaire qui laisse le temps au form de se charger et ensuite de laisser le code réaliser l'animation ?

    En te remerciant pour ton aide,
    Franck

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

Discussions similaires

  1. [AC-2007] Bouton pour completer 3 champs d'un formulaire automatiquement?
    Par EmmanuelleC dans le forum Access
    Réponses: 4
    Dernier message: 29/03/2010, 15h29
  2. Réponses: 2
    Dernier message: 13/05/2008, 16h00
  3. Bouton lié à un champ dans un formulaire.
    Par yonel dans le forum IHM
    Réponses: 8
    Dernier message: 20/12/2005, 11h23
  4. Réponses: 9
    Dernier message: 22/06/2005, 08h45
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

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