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 :

Comment accéder dynamiquement aux champs de la structure handles


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut Comment accéder dynamiquement aux champs de la structure handles
    Bonjour,

    J'ai 25 bouton et j'aimerai récuperer leur valeur avec une boucle FOR de la facon suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=1:25
       get( 'handles.pix'+i ,'Value')
    end
    plutot que de devoir faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    get( 'handles.pix1' ,'Value')
    get( 'handles.pix2' ,'Value')
    get( 'handles.pix3' ,'Value')
    ...
    get( 'handles.pix25' ,'Value')
    mais lorsque j'éxécute il y a une erreur de handle

    Est ce possible de tout regrouper avec un FOR?

    Merci d'avance

  2. #2
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut
    Je connais pas matlab.
    Mais en tout cas d'incremente de 1 la valeur du handle. Je pense pas que ce soit ce que tu cherches a faire non ?

  3. #3
    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
    Citation Envoyé par PKO06
    Je connais pas matlab. Mais en tout cas ...
    Alors la, chapeau bas

    Sinon pour revenir au problème des handle, non il n'y a pas d'autre solution. D'ailleurs, quel serait l'intérêt de la boucle FOR-END ici ?

    Les handles.pix? doivent être utilisés comme ceci, si je ne me trompes pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    get( handles.pix1 ,'Value')
    get( handles.pix2 ,'Value')
    get( handles.pix3 ,'Value')
    ...
    get( handles.pix25 ,'Value')
    J'oubliais, quand tu dis "bouton", tu veux dire radiobutton je présume

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Déjà en matlab :
    'handles.pix'+i %ne veut rien dire !!
    ou plutôt il essaye d'additionner la chaine de caractères 'handles.pix' avec le nombre i !!

    Ce qui t'intéresse sont les valeurs dans la structure handles.
    Il faudrait donc t'intéresser de près au fonctionnement des structures, et en particulier avec les champs dynamiques (apparus avec je ne sais plus quelle version).
    En te basant sur ce petit exemple tu devrais y arriver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    >> s.pix1=2
     
    s = 
     
        pix1: 2
     
    >> s.(['pix',num2str(1)])
     
    ans =
     
         2

  5. #5
    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
    Citation Envoyé par caro95470
    en particulier avec les champs dynamiques (apparus avec je ne sais plus quelle version).
    Cette options est apparue dans la version 6.5 (R13) comme indiqué dans le blog de Loren Shure : Use Dynamic Field References

  6. #6
    Membre confirmé Avatar de PKO06
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 91
    Par défaut
    Je n'aime pas parler pour ne rien dire mais ma remarque ne me semblait pas d'une obscure betise, même s'il elle ne faisait pas avancer le problème.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut
    Merci caro95470 pour ta réponse je vais chercher de ce côté!

    j'avais compris que 'handles.pix'+i ne correpondait a rien en matlab mais c'était pour illustrer ce que je souhaite faire.

    Sinon oui le bouton sont des ratiobutton et je voulais juste m'éviter de recopier mes 25 lignes a chauque fois

  8. #8
    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
    Citation Envoyé par EdHunter
    je voulais juste m'éviter de recopier mes 25 lignes a chauque fois
    C'est donc, de mon point de vue, totalement inutile. En utilisant la boucle FOR-END, le code deviendra :
    1. éventuellement moins rapide
    2. mais surtout moins lisible


    Il n'y a donc aucune raison valable de procéder ainsi.

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

Discussions similaires

  1. COMMENT accès en lecture seul aux logs sqlserver 2008
    Par Rafter dans le forum Administration
    Réponses: 4
    Dernier message: 15/07/2013, 23h58
  2. non accessibilité aux champs d'une structure
    Par Christinita dans le forum MATLAB
    Réponses: 1
    Dernier message: 19/02/2010, 08h18
  3. ADOTable : ajouter un champ en dynamique aux champs existant
    Par Sunchaser dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/03/2006, 17h06
  4. accés aux champs dynamiques ?
    Par bassim dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/11/2005, 20h58

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