首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

TreeView 怎么根据父节点的名称去获得这个父接

2012-03-13 
TreeView 如何根据父节点的名称去获得这个父接?一般的做法是用循环for(intm0mTV- Items- Countm++){

TreeView 如何根据父节点的名称去获得这个父接?
一般的做法是用循环
for(int   m   =   0;   m   <   TV-> Items-> Count;   m++)
{
        TTreeNode   *node;
        node=TV-> Items-> Item[m];
        if(node-> Level   ==   k   &&   node-> Text.Trim()   ==   "hotel ")
        {
                ParentNode   =   node;
                break;
        }
}

由于我的数据量比较大   如果用循环的方法程序会很慢   要跑两分钟才跑出结果

有没有什么函数或其他方法能根据节点名称   直接获得节点?

[解决办法]
可以在TTreeNode的Data里附加节点ID信息,然后通过ID信息查找

参考一下:

void __fastcall TForm1::Button1Click(TObject *Sender)
{ //这个过程只是在演示添加一些带有ID信息的节点,所以用了一个循环
TreeView1-> Items-> Clear();
TTreeNode *node1st,*nodechild;
node1st = TreeView1-> Items-> AddFirst(NULL, "First ");
for (int i=0;i <10;++i)
{
nodechild = TreeView1-> Items-> Add(node1st, IntToStr(i));
nodechild-> Data = (void*)(i);
}
}
//---------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
ShowMessage( "SelectedNode 's ID is " + IntToStr(int(TreeView1-> Selected-> Data)));
}
//---------------------------------------

[解决办法]
把节点Caption和ID全放在数据库里,通过ID信息查找。
[解决办法]
把表信息一次LOAD

在父节点的时候根据父节点的属性条件筛选出下一结点,这样可以省略很多时间。。。

热点排行