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 :

TreeView et checkbox


Sujet :

C++Builder

  1. #1
    Membre averti Avatar de BigBenQ
    Inscrit en
    Juillet 2005
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 363
    Points : 402
    Points
    402
    Par défaut TreeView et checkbox
    Voila mon p'tit soucis,

    Je voudrais inclure des checkbox dans un TreeView pour pouvoir faire des sélections dans le TreeView et afficher les lignes "checkées" dans celui ci.

    Si vous avez une idée, ca m'interesse
    L'informatique, c'est fantastique...

  2. #2
    Membre averti Avatar de BigBenQ
    Inscrit en
    Juillet 2005
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 363
    Points : 402
    Points
    402
    Par défaut
    J'ai trouvé

    Donc, en fait j'ai associé mon TreeView avec un ImageList.
    Dans ImageList j'y ai mis 2 images (une CheckBox cochée et une décochée)
    Par défaut, j'ai tout mis en décoché puis je regarde si on click au niveau du dessin et je change de "coché" à "décoché" (et vis versa)

    Je suis surement pas très clair alors voici mon code.
    (chui déébutant faut pardonner ^^ )


    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
     
     
    void __fastcall TForm1::TreeView1MouseUp(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
    	//
        if(TreeView1->Selected != NULL)
        {
        	TTreeNode* currentNode = (TTreeNode*)TreeView1->Selected;
     
            if ((currentNode->Level*10 + 20)<= X && (currentNode->Level+1)*30 >= X  &&
           		 Niveau (currentNode)*16<= Y && (Niveau (currentNode)+1)*16 >= Y)
    		{
            	TreeView1->Selected->ImageIndex = TreeView1->Selected->ImageIndex == 1 ? 0 : 1;
       			TreeView1->Selected->StateIndex = TreeView1->Selected->ImageIndex;
       			TreeView1->Selected->SelectedIndex = TreeView1->Selected->ImageIndex;
              	}
     
        }
    L'informatique, c'est fantastique...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 22
    Points : 15
    Points
    15
    Par défaut bcp plus simple il y a !
    dans les propriétés de la listview... CHECKBOXES il y a.
    à "true" tu mettra, et une réponse à ta question tu trouvera.

    Bien à toi.
    Demandes si tu ne sait pas, partages ce que tu sait .

  4. #4
    Membre averti Avatar de BigBenQ
    Inscrit en
    Juillet 2005
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 363
    Points : 402
    Points
    402
    Par défaut
    lol ! plus simple tu mouru ! ^^

    Merci, ca va simplifier mon code.
    PS : j'utilise un TreeView pas une ListeView, y a-t-il exactement les mêmes fonctions ?
    L'informatique, c'est fantastique...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 22
    Points : 15
    Points
    15
    Par défaut oups
    oups je c pas lire....
    Non malheureusement j'ai pas trouvé ça non plus... du coups, tu pourrait géré avec 2 images coché/décoché... mais tu perds le profit de l'image ouvert/fermé... pas cool.
    J'avais trouvé un package qui le faisait sur internet, mais c'était payant... encore moins cool...
    La raison à cette spécificité s'explique facilement: entre le clic le double-clic, sur la croix(+), sur l'icone check, sur l'icone standart (type dossier/fichier ou autre), sur le nom du noeud... et quel action faire en fonction de tout ça? La combinatoire deviens trop complexe et dépend trop du besoin utilisateur...
    Une solution intéressante est le menu contextuel pour checker/déchecker (c'est ce que je fait personnellement) et changer la couleur du noeud considéré, mais ça j'ai pas encore trouvé comment faire.

    Si tu as trouvé une solution à la couleur, ou simplement une autre dit moi.

  6. #6
    Membre averti Avatar de BigBenQ
    Inscrit en
    Juillet 2005
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 363
    Points : 402
    Points
    402
    Par défaut
    J'utilise 2 images pour l'instant, mais c'est vrai que si on coche+décoche rapidement et bien ca "déplie" le noeud de l'arbre.

    A suivre....
    L'informatique, c'est fantastique...

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

Discussions similaires

  1. [WinForm] TreeView avec checkbox grisée
    Par Thor Tillas dans le forum Visual C++
    Réponses: 2
    Dernier message: 22/03/2007, 13h27
  2. [VBA-Excel] Treeview et Checkboxes
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/02/2007, 17h37
  3. vb.net : treeview avec checkbox
    Par 1coni dans le forum Windows Forms
    Réponses: 11
    Dernier message: 31/05/2006, 13h18
  4. [C#] TreeView avec CheckBox à certain niveaux
    Par Maxsin dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/04/2006, 16h29
  5. [C#] TreeView avec CheckBox "indeterminate"
    Par padumeur dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/01/2005, 20h53

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