Message : 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 parcoure récursif pour construire ce texte (ensemble de phrase et opérateur). j'ai simplifier le problème et je me dit il faut essayer avec les expréssion arithmétique au début.
voila ma fonction récursive mais je ne connais pas le problème car cette fonction est bien sur fausse.
//------------------------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
S="";
fonction(TreeView1->Items->GetFirstNode());
Edit1->Text=S;
}
//---------------------------------------------------------------------------
String fonction(TTreeNode *Nodef)
{
TTreeNode *Node,*par;
Node=Nodef;
if(Node->HasChildren)
{
S=S+"(";
par=Node->getFirstChild();
while(par!=Node->GetLastChild())
{
fonction(par) ;
S=S+Node->Text;
par=par->GetNext();
}
fonction(par) ;
S=S+")";
}
else S=S+Node->Text;
}
//------------------------------------------------------------------------------------------
exemple
*
| *
| |--+
| | |---a
| | |---b
| |
| |--+
| | |---c
| | |---d
| |
| |
|
|--/
|--e
|---f -----> ((a+b)*(c+d))*(e/f)
mais cette fonction afiche
(((a+b)*a*b*(c+d))*(a+b)*a*b*(c+d)*c*d*(e/f))
//c++builder 6 attente de votre précieuse réponse...abdenour