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

C++Builder Discussion :

Insertion dans un vecteur


Sujet :

C++Builder

  1. #1
    Membre actif
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    66
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 66
    Par d�faut Insertion dans un vecteur
    Bonjour,

    Je voudrais ins�rer dans un vecteur depuis un bouton tous les items s�lectionn�s dans un Treeview
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void __fastcall A::Bouton1Click(TObject *Sender)
    {
     
    for(i=0; i<TreeView1->SelectionCount ; i++)
    {
    UnicodeString select = TreeView1->Selections[i]->Text ;
    v->push_back(select);
    }
    }
    Quand je s�lectionne un seul item et je clic sur Bouton1 j'ai l'item s�lectionn� par contre �a marche pas lorsque je s�lectionne plusieurs items

  2. #2
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur C++\Delphi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par d�faut
    Pense qu'en C++Builder, tu peux utiliser la TStringList pour stocker une liste de chaine au lieu d'un vector

    je note que tu fais v->, avec un vector on peut faire de l'allocation statique SANS le new et donc �crire v. !

    Pour utiliser SelectionCount et Selections, tu as bien activ� MultiSelect ?

    Par d�faut la multiselection se fait via CTRL voir MultiSelectStyle

    Quel est le r�sultat actuel de ton code, je l'ai test� et cela fonctionne en XE3, juste l'ordre qui est un peu bizarre,
    c'est surement une liste chain�e pour le stockage de la selection dans les API Windows du TreeView

    allocation dynamique
    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
     
    //---------------------------------------------------------------------------
    #include <vector>
     
    void __fastcall TVCLManipForm::Button1Click(TObject *Sender)
    {
      typedef std::vector<UnicodeString> usv;
      usv *v = new usv();
      for(int i=0; i<TreeViewMisc->SelectionCount ; i++)
      {
        UnicodeString select = TreeViewMisc->Selections[i]->Text ;
        v->push_back(select);
      }
     
      //
      for (usv::const_iterator it = v->begin(); it != v->end(); ++it)
        ShowMessage(*it);
     
      delete v;
    }
    //---------------------------------------------------------------------------
    ou en allocation statique
    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
     
    //---------------------------------------------------------------------------
    #include <vector>
     
    void __fastcall TVCLManipForm::Button1Click(TObject *Sender)
    {
      typedef std::vector<UnicodeString> usv;
      usv v;
      for(int i=0; i<TreeViewMisc->SelectionCount ; i++)
      {
        UnicodeString select = TreeViewMisc->Selections[i]->Text ;
        v.push_back(select);
      }
     
      //
      for (usv::const_iterator it = v.begin(); it != v.end(); ++it)
        ShowMessage(*it);
    }
    //---------------------------------------------------------------------------
    et TStringList

    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
     
    //---------------------------------------------------------------------------
    void __fastcall TVCLManipForm::Button1Click(TObject *Sender)
    {
      TStringList *sl = new TStringList();
     
      for(int i=0; i<TreeViewMisc->SelectionCount ; i++)
        sl->Add(TreeViewMisc->Selections[i]->Text);
     
      for(int i=0; i< sl->Count ; i++)
        ShowMessage(sl->Items[i]);
     
      delete sl;
    }
    //---------------------------------------------------------------------------
    Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !
    Attention Troll M�chant !
    "Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
    Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la m�diocrit� !

    L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. insertion de valeurs dans un vecteur
    Par leonel10 dans le forum MATLAB
    R�ponses: 3
    Dernier message: 10/08/2013, 17h31
  2. Insertion �l�ment dans un vecteur
    Par baltam2 dans le forum MATLAB
    R�ponses: 2
    Dernier message: 24/05/2012, 15h12
  3. insertion d'une valeur dans un vecteur
    Par devlop_RO dans le forum MATLAB
    R�ponses: 3
    Dernier message: 14/08/2010, 11h38
  4. insertion dans un vecteur
    Par sabrinabest dans le forum SL & STL
    R�ponses: 2
    Dernier message: 14/09/2007, 16h46
  5. [dernier element conteneur] insertion dans vecteur
    Par ZaaN dans le forum SL & STL
    R�ponses: 1
    Dernier message: 02/08/2007, 11h37

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