Gambas France BETA


Pas de compte ? Incription

Bout de code pour un TreeView

1
AuteurMessages
jlouis#1 Posté le 16/12/2010 à 14:56:00
Bonjour à tous,

quelqu'un pourrait-il me donner le code utilisé pour ce TreeView ?



Origine

Un bout de code est parfois plus explicite. Merci d'avance.

Jean-Louis
linuxos#2 Posté le 16/12/2010 à 18:33:00
Un peu de sel, de poivre et la crevette sera... Bonjour,

Peux tu préciser ce que tu souhaite faire avec ton TreeView, car j'en ai plein de code ...

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
jlouis#3 Posté le 16/12/2010 à 19:40:00
Bien le bonsoir linuxos,

Je manque cruellement d'exemples de code pour utiliser un TreeView. J'imagine que je ne suis pas le seul. Dans l'exemple ci-dessus j'arrive à créer (add) l'item #7, mais pas le #8. Par manque d'exemples on pourrait se détourner de Gambas et ce serait dommage. Si tu as du code pour utiliser un TreeView je serais heureux que tu me le fasse parvenir. Je me charge de faire des exemples que je posterai sur ce forum.

Jean-Louis
linuxos#4 Posté le 16/12/2010 à 21:17:00
Un peu de sel, de poivre et la crevette sera... Pour débuter, un exemple statique pour comprendre comment cela fonctionne:

A) Considérons un projet Gambas, avec formulaire dans lequel nous mettrons un TreeView: TreeView1

1
' Gambas class file PUBLIC IndexTreeView1 AS Integer PUBLIC picAgenda AS NEW picture PUBLIC picContactBoulot AS NEW picture PUBLIC picPersonne AS NEW picture PUBLIC picContactPerso AS NEW picture' -----------------------------------------------------------------------------PUBLIC SUB Form_Open() ' Chargement des Icones picAgenda = Picture["Icons/16X16/agenda.png"] picContactBoulot = Picture["Icons/16X16/contact_boulot.png"] picPersonne = Picture["Icons/16X16/personne.png"] picContactPerso = Picture["Icons/16X16/contact_perso.png"] ' Construction du TreeView1 Alimenter_TreeView1()ENDPUBLIC SUB Form_Close() ME.Close(TRUE) ENDPUBLIC SUB Alimenter_TreeView1() ' Procedure pour alimenter le TreeView1 avec des données ' TreeView1 IndexTreeView1 = 0 TreeView1.Add(IndexTreeView1, "Agenda", picAgenda) ' Index 0 INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Contacts Boulot", picContactBoulot, 0) ' Index 1 INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Pierre", picPersonne, 1) INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Jacques", picPersonne, 1) INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Henri", picPersonne, 1) INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Yves", picPersonne, 1) INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Marcel", picPersonne, 1) INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Contacts Perso", picContactPerso, 0) ' Index 7 INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Marie", picPersonne, 7) INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Michel", picPersonne, 7) INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Arthur", picPersonne, 7) INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Romain", picPersonne, 7) INC IndexTreeView1 TreeView1.Add(IndexTreeView1, "Luc", picPersonne, 7) INC IndexTreeView1 TreeView1[7].Expanded = TRUE ' Commande pour Déplier la branche 7 => Contacts Perso TreeView1[1].Expanded = TRUE ' Commande pour Déplier la branche 1 => Contacts Boulot TreeView1[0].Expanded = TRUE ' Commande pour Déplier la branche 0 => Agenda TreeView1[0].Expanded = TRUE TreeView1[0].EnsureVisible() ' Commande pour rendre visible la ligne Index 0 => Agenda visible dans le TreeView1 TreeView1[0].Selected = TRUE ' Commande pour selectionne la ligne Index 0 => AgendaEND




Ceci n'est qu'un exemple, il faudra bien sur accorder le nom et le chemin des Images chargées comme PICTURE
Dans l'exemple, les images se trouvent dans le répertoire de l'application, puis dans Icons/16X16/...

J'ai volontairement décalé les lignes ADD du TreeView1 pour montrer qui est le Parent ou Fils de qui dans l'arbre TreeView1

J'utilise un clé pour chaque ligne du TreeView1 sous forme d'Entier que j'incrémente... mais la clé peut être le Texte que l'on veut car
la clé doit bien être sous forme Texte. C'est Gambas qui transforme automatiquement ma clé INTEGER en TEXT

Le choix des icones est tres important pour le suite de la gestion du TreeView et surtout pour reconnaitre a coup sur ce que l'on y trouve.

Par exemple, dans ce cas, je ne saurait pas distinguer un Pierre de mes contacts Perso, d'un Pierre de mes contacts Boulot, le 2 lignes ont la meme icone
et le meme texte....
Dans ce cas il serait plus judicieux d'utiliser 2 Icones différentes pour bien les distinguer...

Par la suite, il sera donc trés simple de reconnaitre les type de ligne dans le TreeView, juste en testant les Icones ....

J'ai pas trouvé mieux, et cela ne m'a pas jamais fait défaut.

Voila pour un premier exemple, bientot la suite...

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
jlouis#5 Posté le 16/12/2010 à 22:31:00
Merci linuxos,

c'est le genre d'exemple que nous recherchons tous... du code, on essaye, on change... et on comprend.

Je regarde ça plus en détail demain matin. Un grand merci Olivier.

Jean-Louis
1