专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »C 教程 » treeview:用TreeView浏览目录 »正文

treeview:用TreeView浏览目录

来源: 发布时间:星期四, 2008年9月25日 浏览:159次 评论:0
void __fastcall tform1::formcreate(tobject *sender)
{
currentdir=getcurrentdir();
updatetreeview();
updatelistview();
}
//---------------------------------------------------------------------------
void __fastcall tform1::updatetreeview()
{
ttreenode *rnode,*mnode;
treeview1->items->clear();
rnode=treeview1->items->add(treeview1->selected,\"我的电脑\");
rnode->imageindex=1;
rnode->selectedindex=1;
mnode=treeview1->items->addchild(rnode,\"a:\");
mnode->imageindex=2;
mnode->selectedindex=2;
adddirectory(\"a:\",mnode);
for(int i=1;i<drivecombobox1->items->count;i++)
{
mnode=treeview1->items->addchild(rnode,ansistring(char(\'b\'+i))+\":\");
mnode->imageindex=3;
mnode->selectedindex=3;
adddirectory(ansistring(char(\'b\'+i))+\":\",mnode);
}
}

//------------------------------------------------------------------------
void tform1::adddirectory(ansistring path,ttreenode *fnode)
{
tsearchrec sr;
ttreenode *mnode;
if(findfirst(path+\"\\\\*.*\" ,fadirectory,sr)==0)
{
if(sr.attr==fadirectory)
{
if(sr.name!=\".\"&&sr.name!=\"..\")
{
mnode=treeview1->items->addchild(fnode,sr.name);
mnode->imageindex=0;
mnode->selectedindex=4;
// adddirectory(path+\"\\\\\"+sr.name,mnode);
}
}
}
while(findnext(sr)==0)
{
if(sr.attr==fadirectory)
{
if(sr.name!=\".\"&&sr.name!=\"..\")
{
mnode=treeview1->items->addchild(fnode,sr.name);
mnode->imageindex=0;
mnode->selectedindex=4;
// adddirectory(path+\"\\\\\"+sr.name,mnode);
}
}
}
findclose(sr);
}

//--------------------------------------------------------------------

void __fastcall tform1::treeview1changing(tobject *sender, ttreenode *node, bool &allowchange)
{
screen->cursor=crhourglass;
tsearchrec sr;
ttreenode *nodetmp=node;
ansistring dirname,dirtmp;
dirname=node->text;
for(int i=node->level;i>1;i--)
{
nodetmp=nodetmp->parent;
dirtmp=nodetmp->text;
if(dirtmp.substring(dirtmp.length(),1)!=\"\\\\\")
dirtmp+=\"\\\\\";
dirname.insert(dirtmp,0);
}
if(dirname.substring(dirname.length(),1)!=\"\\\\\")
dirname+=\"\\\\\";
for(int j=0;j<node->count;j++)
{
if(node->item[j]->count==0);
{
if(findfirst(dirname+node->item[j]->text+\"\\\\*.*\", faanyfile, sr) == 0)
{
do
{
//node->item[j]->imageindex=5;
//node->item[j]->selectedindex=4;
if((sr.attr&fadirectory)&&sr.name!=\".\"&&sr.name!=\"..\")
{
node->item[j]->imageindex=0;
node->item[j]->selectedindex=4;
treeview1->items->addchild(node->item[j],sr.name);
}
}
while (findnext(sr)==0);
findclose(sr);
}
}
}
screen->cursor=crdefault;
}

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: