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 :

2 listboxes interactives


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut 2 listboxes interactives
    bonjour,
    Je souhaite rendre 2 listbox interactives...je veux que quand la valeur de maListe 3 est different de 'all' alors ne pas créer la listbox suivante...Le problème est que all étant sélectionné par défaut, la 2eme list se fait systématiquement...
    Il me manque l'actualisation des valeurs quand on passe de 'all' à une autre valeur...Je sais pas trop comment m'y prendre.
    merci à ceux qui pourront m'éclairer.

    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
        maListe3=uicontrol('style','listbox',...
            'Position',[(w/3.8) (h/55) (w/11) (h/3.6)],...
            'String',{'all','1','2','3','8'});
     
     
               index_selected99 = get(maListe3,'Value');
            list99 = get(maListe3,'String');
            Trials = list99{index_selected99}
     
        if Trials == 'all'
     
     
            f=who('Go*','GO*','No*','NO*');
     
            %%%%%  LISTBOX TRIALTYPE
            maListe4=uicontrol('style','listbox',...
                'Position',[450 10 100 200],...
                'String',f);
            set(maListe4,'String',f);
    end

  2. #2
    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
    tu n'as pas de callback ?

    Un exemple :
    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
    function essai_liste()
    handles.maListe3=uicontrol('style','listbox',...
            'Position',[(w/3.8) (h/55) (w/11) (h/3.6)],...
            'String',{'all','1','2','3','8'},...
            'Callback',@maliste3);
    hanldes.mListe4 = uicontrol('style','listbox',...
                'Position',[450 10 100 200],...
                'Visible','off');%invisible au départ
    guidata(gcf,handles);
     
    function maliste3(varargin)
    handles = guidata(gcbf);
    index_selected99 = get(handles.maListe3,'Value');
    list99 = get(handles.maListe3,'String');
    Trials = list99{index_selected99}
     
    if strcmp(Trials,'all');% Trials == 'all' => baaaaaah, la comparaison de chaine de caractères se fait avec STRCMP sinon bug
            f=who('Go*','GO*','No*','NO*');
            set(maListe4,'String',f,'Visible','on');
    else
            set(maListe4,'Visible','off');
    end
    Attention, non testé.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    merci pour ta réponse...le seul ptit problème est qu'il me repond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ??? Undefined function or variable 'maListe4'.
    quand je clique sur la maListe3

    Merci

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Je crois qu'il y a une petite faure de frappe, il ne faut pas lire "maListe4" mais "handles.maListe4"

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    Merci pour vos réponse...j'ai un peu modifié le code mais je suis confronté à un autre probleme...je ,n'arrive pas à renvoyer 'nomdufichier' dans la fonction maliste3 (la 2eme)...il passe pourtant bien dans la fonction essai_liste...
    Merci encore à vous


    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
    33
    34
    35
    36
    37
    function essai_liste(nomdufichier)
     
     
     
    ScreenSize=get(0,'screensize');
            w=ScreenSize(3)-300;
            h=ScreenSize(4)-200;
     
    handles.maListe3=uicontrol('style','listbox',...
            'Position',[(w/3.8) (h/55) (w/11) (h/3.6)],...
            'String',{'select','all','1','2','3','8'},...
            'Callback',@maliste3);
     
    guidata(gcf,handles);
     
    function maliste3(varargin)
     
    ScreenSize=get(0,'screensize'); 
            w=ScreenSize(3)-300;
            h=ScreenSize(4)-200;
     
    handles = guidata(gcbf);
    index_selected99 = get(handles.maListe3,'Value');
    list99 = get(handles.maListe3,'String');
    Trials = list99{index_selected99};
     
    maListe4 = uicontrol('style','listbox',...
                'Position',[(w/2.55) (h/55) (w/11) (h/3.6)],...
                'Visible','off');%invisible au départ
     
    if strcmp(Trials,'all');
     eval(['load (nomdufichier)']);
            f=who('Go*','GO*','No*','NO*')
            set(maListe4,'String',f,'Visible','on');
    else
            set(maListe4,'Visible','off');
    end

  6. #6
    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
    Aaaaaah...

    1. Pourquoi recréer la 2ème liste à chaque fois ?

    2. EVAL = EVIL...surtout que ça ne sert à rien ici :

    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
    33
    function essai_liste(nomdufichier)
     
    ScreenSize=get(0,'screensize');
            w=ScreenSize(3)-300;
            h=ScreenSize(4)-200;
     
    handles.maListe3=uicontrol('style','listbox',...
            'Position',[(w/3.8) (h/55) (w/11) (h/3.6)],...
            'String',{'select','all','1','2','3','8'},...
            'Callback',@maliste3);
     
    handles.maListe4 = uicontrol('style','listbox',...
                'Position',[(w/2.55) (h/55) (w/11) (h/3.6)],...
                'Visible','off');%invisible au départ
     
    handles.nomfichier = nomfichier;
     
    guidata(gcf,handles);
     
    function maliste3(varargin)
     
    handles = guidata(gcbf);
    index_selected99 = get(handles.maListe3,'Value');
    list99 = get(handles.maListe3,'String');
    Trials = list99{index_selected99};
     
    if strcmp(Trials,'all');
            load (nomdufichier);
            f=who('Go*','GO*','No*','NO*')
            set(handles.maListe4,'String',f,'Visible','on');
    else
            set(handles.maListe4,'Visible','off');
    end

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/04/2011, 16h56
  2. Interaction entre 2 listboxs, ajout d'item - items invisibles
    Par Hakenaton dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/06/2010, 15h14
  3. DrawItem d'un listbox...
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/06/2007, 15h50
  4. [listbox] Interaction entre 2 listboxes
    Par ruzakruzak dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/06/2007, 16h46
  5. [C# VS 2005 Express] Form/List/ListBox/RichTextBox interactions
    Par SDragon dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/07/2006, 19h06

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