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 :

S�lectionner plusieurs items dans TreeView


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 S�lectionner plusieurs items dans TreeView
    Bonjour,

    J'ai cr�� un TreeView qui permet d'afficher des items � partir d'un fichier, j'ai associ� �galement des images comme dans l'explorateur Windows, mon probl�me maintenant c'est que je dois coder un bouton de fait qu'une fois je s�lectionne un ou des items dans le treeView et je clique sur le bouton, les noms des items s'ajoutent directement dans la memo ( memo1) qui est cr�� dans une autre classe nom� form1

    Je sais d'avantage que la propri�t� selected permet de retourner l'objet s�lectionn� de type TTreenode, et avec unitName() en peut avoir le nom en UnicodeString
    La question est comment je peux selectionner plusieurs items � la fois, et les rajouter dans le memo

    Merci pour votre aide

  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
    MultiSelect � true
    MultiSelectStyle par d�faut msControlSelect
    Selections[] et SelectionCount
    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

  3. #3
    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
    Bonjour,

    Je n'ai pas bien saisie ta r�ponse, en fait sans avoir mettre multiselect � true, je peux s�lectionner plusieurs items, le probl�me c'est comment je peux les retourner pour les mettre dans memo
    ps : puisque j'ai pas l'option des cases � cocher dans ma version XE2, j'ai trich� avec les images, est ce que je peux jouer sur les indexe d'image pour r�cup�rer les objets mais je sais pas vraiment comment proc�der !!

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
     void __fastcall TForm1::TreeView1Click(TObject *Sender)
    {
    TreeView1->Selected->StateIndex = 3 - TreeView1->Selected->StateIndex ;
    }

  4. #4
    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
    Le StateIndex c'est pour choisir l'index d'une image dans une TImageList, tr�s �trange ton code !

    Citation Envoy� par belfort90 Voir le message
    Je n'ai pas bien saisie ta r�ponse,
    Tu as lu l'aide des diff�rents �l�ments mentionn�s ?

    Citation Envoy� par belfort90 Voir le message
    en fait sans avoir mettre multiselect � true, je peux s�lectionner plusieurs items, le probl�me c'est comment je peux les retourner pour les mettre dans memo
    Si tu bidouilles sans utiliser les fonctionnalit�s fournis par la VCL faut pas �tre surpris que cela ne fonctionne pas !

    As-tu regard� le tableau Selections[], il suffit de boucler dessus, cela fourni un tableau de TTreeNode, comme le ferait Selected mais pour N noeud !
    Rien ne t'emp�che de g�rer un SelectedIndex pour montrer la selection via l'�venemenet OnGetSelectedIndex

    Citation Envoy� par belfort90 Voir le message
    ps : puisque j'ai pas l'option des cases � cocher dans ma version XE2, j'ai trich� avec les images, est ce que je peux jouer sur les indexe d'image pour r�cup�rer les objets mais je sais pas vraiment comment proc�der !!
    Malheureusement, on l'a r�clam� vu que cela existe en standard sous Windows !
    Tu peux effectivement consid�rer que tous les noeuds d'un �tat donn� soit consid�re comme s�lectionn�, je pense que certains �crans de l'application que je maintiens ont �t� con�us ainsi et bcp d'utilisateur se plaignent de l'ergonomie de cela !

    Il est possible d'afficher les CheckBox :

    Voir MSDN comme TreeView_GetCheckState ou TreeView_SetCheckState que l'on trouve dans commctrl.h via CommCtrl.hpp

    Voir un sujet du 30 Aout 2011 : treeview sous c++ builder !

    Voir aussi Daniel Log: Add CheckBox in TreeView with Borland C++ builder :

    Citation Envoy� par Daniel
    1. Add CheckBox in TreeView:
    SetWindowLong(TreeView1-> Handle, GWL_STYLE, GetWindowLong(TreeView1-> Handle, GWL_STYLE) | TVS_CHECKBOXES);

    2. Get Check State from node of TreView
    bool Checked = TreeView_GetCheckState(TreeView1-> Handle, Node-> ItemId);

    3. Set Node Checked status
    bool Checked = true;
    TreeView_SetCheckState(TreeView1-> Handle, TreeView1-> Selected-> ItemId, Checked);

    4. Set Node and child node checked
    void SetChildChecked(TTreeView *TreeView, TTreeNode *Node, bool Checked)
    {
    TreeView_SetCheckState(TreeView-> Handle, Node-> ItemId, Checked);
    for (int i=0; i Count; i++)
    SetChildChecked(TreeView, Node-> Item[i], Checked);
    }
    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

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

Discussions similaires

  1. S�lectionner des Items dans une ListBox
    Par berpi dans le forum D�buter
    R�ponses: 3
    Dernier message: 07/02/2008, 22h56
  2. S�lectionner plusieurs fichiers dans un input FILE
    Par melitta dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 14/12/2007, 14h29
  3. R�ponses: 1
    Dernier message: 19/11/2007, 17h18
  4. s�lectionner un item dans un listview en mode d�tail.
    Par grome dans le forum Windows Forms
    R�ponses: 7
    Dernier message: 22/08/2007, 12h16
  5. Sélectionner plusieurs items dans une listbox
    Par ancrou dans le forum Interfaces Graphiques
    R�ponses: 1
    Dernier message: 13/07/2007, 19h28

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