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

MFC Discussion :

[VisualC++6.0]Object Array dans un ListBox


Sujet :

MFC

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut [VisualC++6.0]Object Array dans un ListBox
    Salut!
    Comment faire pour mettre un ObjectArray dans un ListBox?

    car m_ListNom.AddString(m_oaPersonnes); ne peut fonctionner car c'est en string, il y a t'il une mani�re?
    Merci
    Thom

  2. #2
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Qu'appelles-tu ObjectArray?
    Quoi qu'il en soit, la fonction AddString, comme son nom l'indique et comme tu l'as not�, prends un CString en param�tre. Et non un tableau, quel qu'il soit. AddString n'ajoute qu'un �l�ment, si tu veux entrer un tableau dans ta ListBox, il va te falloir une boucle.

    Hope it helps.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Salut, j'appelle ObjectArray comme �tant un tableau... J'ai une classe CPersonne d�riv� de CObject et j'ai un m_oaPersonnes qui est un tableau o� je met mes "enregistrements".

    Est-ce plus clair
    Merci..
    Thom

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    pas vraiment ,�a nous dit pas ce que tu veux faire de ce tableau ...

  5. #5
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Je ne sais pas trop pourquoi ton CPersonne h�rite de CObject mais soit... (hmm, � tout hasard, tu ne programmais pas en java avant? )
    Tu ne donne pas beaucoup de pr�cisions, mais je vais prendre un exemple: imaginons que tu souhaites mettre les noms des personnes dans ta listbox. Et bien il va te falloir impl�menter un m�thode CString CPersone::GetName(); qui renvoie le nom de la personne. Puis, pour mette ce nom dans ton listbox, tu n'aura plus qu'� faire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    malistbox.AddString(MonTableauDePersonnes[i].GetName());

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Salut, ok je vais essayer encore...

    j'ai ma classe CPersonne:
    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
     
    class CPersonne : public CObject  
    {
        DECLARE_SERIAL(CPersonne)
    public:
        CPersonne();
        void SetAge(int age) { m_iAge = age;}
        void SetEmploye(BOOL employe) { m_bEmploye = employe;}
        void SetNom(CString nom) { m_csNom = nom;}
        void SetSexe(int sexe) { m_iSexe = sexe;}
        void SetSituation(int situation) { m_iSituation = situation;}
        int GetAge() { return m_iAge;}
        BOOL GetEmploye() { return m_bEmploye;}
        CString GetNom() { return m_csNom;}
        int GetSituation() { return m_iSituation;}
        int GetSexe() { return m_iSexe;}
        virtual void Serialize(CArchive &ar);
        virtual ~CPersonne();
    private:
        CString m_csNom;
        int m_iAge;
        int m_iSituation;
        BOOL m_bEmploye;
        int m_iSexe;
    };
    Et je voudrais que seulement le nom apparaisse dans un ListBox... Mon ListBox va chercher tout ce qui �tait enregistrer dans mon m_oaPersonnes qui est dans ma classe Document

    Ensuite j'ai un Dialog qui contient mon ListBox et je veux simplement que dans celui-ci que mes donn�es(nom) s'y retrouve.
    OnInitDialog:
    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
     
    BOOL CListeEmp::OnInitDialog() 
    {
        CDialog::OnInitDialog();
     
        // TODO: Add extra initialization here
        UpdateData(TRUE);
    //    CString CPersone::GetNom();
        m_pDoc = static_cast<CBottinDoc *>(static_cast<CFrameWnd *>(AfxGetMainWnd())->GetActiveDocument());
        for( int i=0;m_pDoc->m_oaPersonnes.GetSize();i++)
            m_ListNom.AddString(m_pDoc->m_oaPersonnes);
        UpdateData(FALSE);
     
        return TRUE;  // return TRUE unless you set the focus to a control
                      // EXCEPTION: OCX Property Pages should return FALSE
    }
    Je veux mettre mon tableau dans mon ListBox.

    Merci...
    Thom

  7. #7
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Oki, et bien il me semble que je t'ai donn� la r�ponse. A peu de chose pr�s... je te laisse chercher un peu?

    for( int i=0;m_pDoc->m_oaPersonnes.GetSize();i++)
    m_ListNom.AddString(m_pDoc->m_oaPersonnes[i].GetNom());

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Ok j'ai compris, j'avais d�j� une fonction GetNom, je comprend la logique.. mais je doute du
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    malistbox.AddString(MonTableauDePersonnes[i].GetName());
    pcq comme tu disais et je disais j'ai un ObjectArray et je peux mettre encore AddString? et ensuite m_oaPersonnes[i].GetNom() il me dit que
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    error C2228: left of '.GetNom' must have class/struct/union type
    Jsuis un peu conffu..
    merci
    Thom

  9. #9
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Comment est d�clar� ton tableau "m_oaPersonnes"?

  10. #10
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Mon tableau m_oaPersonnes est d�clarer dans mon Doc comme ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    public:
        CObArray m_oaPersonnes;
    Merci
    Thom

  11. #11
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    mmhpff.. je ne connais pas cette classe: CObArray ^^
    Visiblement, elle ne comporte pas d'op�rateur [], il va donc te falloir utiliser GetAt (cf. http://msdn2.microsoft.com/en-us/library/5dfbaz26(VS.80).aspx )
    D�sol�, l� je ne peux pas vraiment t'en dire plus

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 15
    Par d�faut
    Essaye :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    CPersonne* pPersonne = (CPersonne*)MonTableauDePersonnes[i];
    maListBox.AddString(pPersonne->GetName());

  13. #13
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    puisque mon m_oaPersonnes est dans le Doc je devrais faire plutot

    for(i=0;i< m_pDoc->m_oaPersonnes.GetSize();i++) // Pas sure pour la boucle...
    CBottinDoc* pPersonne = (CBottinDoc
    *)m_oaPersonnes[i];
    m_ListNom.AddString(pPersonne->GetNom()); euh mais ca fonctionne pas...

    Merci
    Thom

  14. #14
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    A tout hasard: essaie de remplacer m_oaPersonnes[i] par m_oaPersonnes.GetAt(i)

  15. #15
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Hihi je tadore r0d

    Ca fonctionne, il me suffit de coss� sur ma boucle...
    Merci!!!
    Thom

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 15
    Par d�faut
    Comment ajoutes-tu un �l�ment � m_oaPersonnes ?

  17. #17
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Salut jai prit un peu de ton code merci aussi lol!
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    for( int i=0;i < m_pDoc->m_oaPersonnes.GetSize();i++)
        {
        CPersonne* pPersonne = (CPersonne*)m_pDoc->m_oaPersonnes.GetAt(i);
            m_ListNom.AddString(pPersonne->GetNom());
        }
    j'lai un peu modifier et j'lai fait fiter dans ma fonction OnInitDialog

    Merci ciao :p

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. recherche dans une listbox
    Par micknic dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 4
    Dernier message: 23/02/2005, 21h39
  2. Clique droit dans une ListBox
    Par LoicH dans le forum C++Builder
    R�ponses: 5
    Dernier message: 07/02/2005, 22h50
  3. [debutant] supprimer elements dans une listbox
    Par F.F. dans le forum C++Builder
    R�ponses: 8
    Dernier message: 02/07/2004, 11h38
  4. [WIN32]tabulation dans une listbox
    Par stoluup dans le forum MFC
    R�ponses: 2
    Dernier message: 09/06/2004, 10h11
  5. Ic�ne a cot� du texte dans une ListBox
    Par joce3000 dans le forum C++Builder
    R�ponses: 6
    Dernier message: 05/12/2003, 02h25

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