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

Interfaces Graphiques Discussion :

Utilisation de 'Cancel' du questdlg


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 28
    Par défaut Utilisation de 'Cancel' du questdlg
    Bonjour à tous,

    J'ai un petit soucis avec la fonction questdlg.

    Je pose une série de questions à l'utilisateur du programme, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Reponse=questdlg('Voulez Vous des glaces?','Titre','Oui','Non','default);'
     
    if strfind(Reponse,'Yes')
    Type=questdlg('Quel parfum ?','Titre','Vanille',Chocolat','default');
    end
    A la question Quel parfum, l'utilisateur peut cliquer sur 3 choix: Vanille Chocolat et Cancel.

    Ce que j'aimerai c'est que lorsqu'il clique sur Cancel, le programme retourne à la question Voulez vous des glaces ?. En gros faire une sorte de GoTo.

    Je sais que la fonction Goto n'existe pas sous Matlab, et je ne vois pas comment arriver à en bidouiller une (même avec une boucle while).

    Je pense que la solution est simple et que je suis passé à coté.

    Auriez vous une idée ?

    Cordialement
    Taltia


    Ps: J'utilise la version 7.6.0(R2008a) de base

  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 317
    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 317
    Par défaut
    Pour effectuer une comparaison de chaines de caractères, on utilise la fonction STRCMP (ou ses dérivées STRNCMP, STRCMPI ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Reponse = 'Yes'
     
    strcmp(Reponse,'Yes')
     
    strcmpi(Reponse,'yes')
     
    strncmp(Reponse,'Y',1)
    Pour savoir si la chaine testé fait partie d'un groupe de propositions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    any(strcmp(Type,{'Vanille','Chocolat'}))
    Il te suffit donc de faire d'englober le second QUESTDLG dans une boucle WHILE-END avec le test ci-dessus. Il ne faut pas oublier d'initialiser la valeur du test à 1 avant d'entrée dans la boucle en affectant une des deux solutions à la variable Type.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 28
    Par défaut
    Pardon mais je n'ai pas du me faire comprendre:


    Je ne cherche pas à faire un test sur la réponse Vanille ou Chocolat.

    Ce que j'aimerais c'est que lorsqu'on clique sur 'Cancel' on repose la question 'Voulez vous des glaces?'

    Cordialement
    Taltia

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    J'y étais presque

    Enlève le ; à la fin de la ligne du QUESTDLG concerné.
    Lance ton code, appuie sur Cancel et regarde la valeur que prend la variable Type.

    Tu auras alors la condition à tester

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 28
    Par défaut
    D'accord, j'ai compris l'astuce des boucles while (comme quoi quand on réfléchi un peu )

    Merci Dut, grâce à toi je vais pouvoir optimiser mon programme.

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    On peut avoir un aperçu de la solution que tu as codée ?

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

Discussions similaires

  1. Utiliser un bouton Cancel
    Par mimic50 dans le forum MFC
    Réponses: 3
    Dernier message: 31/08/2006, 22h33
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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