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

MATLAB Discussion :

afficher un compte à rebours et cliquer [Débutant]


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Femme Profil pro
    Doctorante
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 19
    Points
    19
    Par défaut afficher un compte à rebours et cliquer
    Bonsoir à tous,

    J'ai un petit problème lors de l'exécution de mon programme. En gros, j'ai une fonction qui permet de faire passer la couleur de fond d'un uicontrol 'Style' text, de rouge (pendant 2 secondes), puis orange (pendant 0.8 secondes) et enfin verte. Lorsque le fond est vert, j'affiche un compte à rebours, et deux pushbutton sont activés.

    Si mon code est le suivant, je peux cliquer sur les boutons au bon moment, mais le compte à rebours ne s'affiche pas dans l'uicontrol style text.

    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
    29
    30
    31
    32
     
    function comptearebours(obj,event)
            boutonoff;
            boutonorange;
            boutonon;
     
            function boutonoff
                set(handles.tx1,'string',2.8);
                set(handles.tx1,'BackgroundColor',[1 0 0]);%la case est rouge
                set(handles.bouton1,'Enable','Inactive');
                set(handles.bouton2,'Enable','Inactive');
                pause(2);
            end
     
            function boutonorange
                set(handles.tx1,'BackgroundColor',[1 0.5 0.2]);%la case est orange
                pause(0.8);
            end
     
            function boutonon
                set(handles.tx1,'BackgroundColor',[0 1 0]);%la case est verte
                set(handles.bouton1,'Enable','On');
                set(handles.bouton2,'Enable','On');
                m = (100*(str2num(get(handles.tx1,'string')))-1);       
                for i = 0:m
                    n = get(handles.tx1,'string');
                    n = str2double(n)-0.01;
                    set(handles.tx1,'string',num2str(n));
                end
                set(handles.tx1,'BackgroundColor',[1 0 0]);%la case est rouge
            end
        end
    Pour que le compte à rebours s'affiche, j'ajoute la ligne pause(0.01) à la fin de la boucle for. Le problème, c'est que quand je clique sur les boutons, j'ai l'erreur suivante :
    ??? Error using ==> pause
    Error while evaluating uicontrol Callback
    Quelqu'un a-t-il une idée pour que je puisse à la fois afficher mon compte à rebours, mais que je puisse cliquer sur les boutons ?

    Merci beaucoup !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Citation Envoyé par Meloody Voir le message
    j'ajoute la ligne pause(0.01) à la fin de la boucle for.
    Remplace cette pause par un appel à drawnow
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre à l'essai
    Femme Profil pro
    Doctorante
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Encore une fois merci beaucoup Dut, ça marche nickel !

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 20/04/2014, 17h48
  2. Afficher heure + compte à rebours dans barre de titre
    Par Zaza91280 dans le forum VB.NET
    Réponses: 2
    Dernier message: 14/04/2010, 15h23
  3. compte à rebours
    Par Datord dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/11/2005, 21h22
  4. compte à rebours
    Par etoile1506 dans le forum C
    Réponses: 10
    Dernier message: 27/10/2005, 15h20
  5. Compte à rebours trop rapide
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2005, 20h57

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