Treeview

Résolu
braderic
Messages postés
7
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
5 mai 2008
- 18 oct. 2007 à 22:12
Guillemouze
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
- 21 oct. 2007 à 20:15
Bonsoir,
Je voudrais a partir d'une table du type de celle ci-dessous remplir un treeview en utilisant la donnée parent pour hierarchiser mon arborescence.
Dans ma table: toto et tata sont a la racine et titi et popo sont les enfants de tata ....
Y a-t-il d'autres solutions pour creer une arborescence avec un table et comment la creer dans un treeview ?
Merci d'avance

Numauto     Parent     Nom     
1                                  toto
2                                  tata       
3                    2              titi          
4                     2              popo        

3 réponses

Guillemouze
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
21 oct. 2007 à 20:15
procedure AddToTreeView(TV: TTreeView; idParent: integer = 0; parentNode: TTreeNode = nil);


var


    TmpNode: TTreeNode;


begin


    SQL.Execute('Select * From MaTable where Parent='+inttostr(idParent));


    sql.first;


    while not sql.eof do


    begin


       TmpNode := TV.Items.AddChild(parentNode, sql.nom);


       AddToTreeview(TV, sql.id, TmpNode);


        sql.next;


    end;


end;
3
Guillemouze
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
18 oct. 2007 à 22:51
une petite procedure recursive fera l'affaire. Je ne pense pas qu'il y ai de moyen de le stocker differament en BD. peut etre en utilisant un xml

voici une fonction en pseudo code qui pourra t'aiderprocedure AddToTreeView(TV: TTreeView; idParent: integer 0; parentNode: TTreeNode nil);

var

    TmpNode: TTreeNode;

begin

    SQL.Execute('Select * From MaTable where Parent='+inttostr(idParent));

    sql.first;

    while not sql.eof do

    begin

       TmpNode := TV.AddNode(parentNode);

       TmpNode.Caption := sql.Nom;

       AddToTreeview(TV, sql.id, TmpNode);

        sql.next;

    end;

end;
0
braderic
Messages postés
7
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
5 mai 2008

21 oct. 2007 à 14:08
Merci pour la reponse mais la function AddNode me demande d'autres parametres je ne m'en sorts pas !!!
0