Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1362 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Parcours récursif Treeview ( Neuds + branches ) ... ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Parcours récursif Treeview ( Neuds + branches ) ... ??

n°1032788
locas
Posté le 01-04-2005 à 20:29:52  profilanswer
 

bonjour,
 
Je recherche un bout de code qui permette le parcours complet d'un treeview afin d'en recuperer le text de chaque noeud et chaque branche. Le plus propre serait de parcourir en récursif mais je n'arrive pas à le faire et je n'arrive pas à trouver d'exemple à ce sujet ... n'auriez-vous pas un petit bout de code ou un lien qui me permettrait de trouver ca ?
 
Si quelqu'un à une autre idée, je suis preneur !
 
merci par avance de vos réponses.

mood
Publicité
Posté le 01-04-2005 à 20:29:52  profilanswer
 

n°1033254
locas
Posté le 02-04-2005 à 20:36:17  profilanswer
 

pour info, j'ai trouvé une solution :
 
function GetNodeByText(ATree: THTMLTreeView; StringSearch: string): TTreeNode;
var i: Integer;
    iItem: string;
begin
  if (ATree = nil) or (StringSearch = '') then Exit;
 
  for i := 0 to ATree.Items.Count-1 do
  begin
    iItem := ATree.Items[i].Text;
 
    if Pos(StringSearch, iItem) > 0 then
    begin
      Result := ATree.Items[i];
      Exit;
    end  
    else  
    begin
      Result := nil;
    end;
  end;
end;
 
Voilà, en espérant que ca servira a quelqu'un !!!  
 
a+

n°1099911
anagram_
Posté le 27-05-2005 à 17:30:17  profilanswer
 

Salut,
 
En cherchant sur google, je suis tombé sur ton message. Je cherche aussi à parcourir un treeview récursivement mais par les noeuds enfants du noeud courant.
Dans ton dernier code, je ne vois pas de récursivité. As-tu d'autres infos stp ?
 
Merci

n°1100844
anagram_
Posté le 29-05-2005 à 12:47:28  profilanswer
 

Up ?

n°1770450
noor33
d
Posté le 07-08-2008 à 01:14:00  profilanswer
 

salut
 
je doit construire une phrase à partir de TTreeView telque les noeud sont les opérateurs logique et les derniére feuilles sont les phrases.cela dit que mon treeview est un arbre abstrait. la meilleur solution est de faire un parcour recursif pour construire ce texte (enssemble de phrase et opérateur). j'ai simplifier le pb et je me dit il faut esseyer avec les expréssion arithmétique au debut.
voila ma fonction recursive mais je ne connai pas le pb car cette fonction est biensur fausse.
 
si quelqu'un peut m'aider  !!!
//------------------------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
S="";
Edit1->Text=fonction(TreeView1->Items->GetFirstNode());
}
//---------------------------------------------------------------------------
String fonction(TTreeNode *Nodef)
{
int i;
TTreeNode *Node,*f,*l,*par;
 
Node=Nodef;
if(Node->HasChildren)
  {
  par=Node->getFirstChild();
 while(par!=Node->GetLastChild())
       {
       S=S+fonction(par)+"  "+Node->Text;
       par=par->GetNext();
       }
       S=S+fonction(par);
       return(S);
  }
  else return(Node->Text);
}
//------------------------------------------------------------------------------------------
exemple  
*
|  *
|   |--+
|   |    |---a
|   |    |---b
|   |
|   |--+
|   |    |---c
|   |    |---d
|   |
|   |
|
|--/
|--e
|---f     ----->   ((a+b)*(c+d))*(e/f)
 


---------------
d
n°1770454
noor33
d
Posté le 07-08-2008 à 01:57:51  profilanswer
 

salut
 
je doit construire une phrase à partir de TTreeView telque les noeud sont les opérateurs logique et les derniére feuilles sont les phrases.cela dit que mon treeview est un arbre abstrait. la meilleur solution est de faire un parcour recursif pour construire ce texte (enssemble de phrase et opérateur). j'ai simplifier le pb et je me dit il faut esseyer avec les expréssion arithmétique au debut.
voila ma fonction recursive mais je ne connai pas le pb car cette fonction est biensur fausse.
 
si quelqu'un peut m'aider  !!!
//------------------------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
S="";
Edit1->Text=fonction(TreeView1->Items->GetFirstNode());
}
//---------------------------------------------------------------------------
String fonction(TTreeNode *Nodef)
{
int i;
TTreeNode *Node,*f,*l,*par;
 
Node=Nodef;
if(Node->HasChildren)
  {
  par=Node->getFirstChild();
 while(par!=Node->GetLastChild())
       {
       S=S+fonction(par)+"  "+Node->Text;
       par=par->GetNext();
       }
       S=S+fonction(par);
       return(S);
  }
  else return(Node->Text);
}
//------------------------------------------------------------------------------------------
exemple  
*
|  *
|   |--+
|   |    |---a
|   |    |---b
|   |
|   |--+
|   |    |---c
|   |    |---d
|   |
|   |
|
|--/
|--e
|---f     ----->   ((a+b)*(c+d))*(e/f)
 


---------------
d

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Parcours récursif Treeview ( Neuds + branches ) ... ??

 

Sujets relatifs
[MySQL] DELETE récursiftreeview Ms Access
[algo] algo non recursif pour parcourir les niveaux d'un arbre[Résolu][Perl/Gtk2] Récupérer les éléments d'un Gtk2::TreeView
pitit probleme avec un treeviewparcours d'objet
Gerer les couleurs des branches d'un arbre suivant le focusParcours d'une table de la ligne * à la fin
Parcours d'un fichier Excelpourquoi la racine fait jamais comme les autres ? [TreeView] [resolu ]
Plus de sujets relatifs à : Parcours récursif Treeview ( Neuds + branches ) ... ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR