bcb中同时显示文件和文件夹的控件(2)

2020-05-03 17:54

NodeTmp=NodeTmp-> Parent; DirTmp=NodeTmp-> Text;

if(DirTmp.SubString(DirTmp.Length(),1)!= \

DirTmp+= \

DirName.Insert(DirTmp,0); }

if(DirName.SubString(DirName.Length(),1)!= \

DirName+= \

if (FindFirst(DirName+ \{ do {

if((sr.Attr & faDirectory) && sr.Name!= \{

TreeView2-> Items-> AddChild(Node,sr.Name); }

} while (FindNext(sr) == 0); FindClose(sr); } }

Screen-> Cursor=crDefault; Animate1-> Active=false;

这种方法速度虽然很快,但由于只是添加一层的子目录,所得到的节点表示的目录下不管有没有子目录,节点左边都没有“+”符号(有“+”表示有子节点),因此就有必要将它修改一下了,于是就有第三种方法的出现。 第二种方法是因为只添加了下一级的子目录,所以才会出现这种问题,如果我们添加到下两级的子目录,问题就会得到解决,这就是第三种方法。这样,当打开一个节点的时候,OnChange事件的代码就会把下两级的子目录添加进来,再打开一个节点,该节点下两级的子目录又被添加进来,看起来就像是把整个目录树放到了TreeView中一样。 第三种方法的实现如下:

再添加一个Button组件Button4和一个TreeView组件TreeView3到窗体Form1上,将Button4的Caption属性改为“装载TreeView3”,双击Button4组件,在Button4的OnClick事件中加入以下代码:

AnsiString Path=Edit1-> Text;

if(Path.SubString(Path.Length(),1)!= \

Path+= \

TTreeNode * Node1=TreeView3-> Items-> Add(NULL,Path); TSearchRec sr;

if (FindFirst(Path+ \{ do {

if((sr.Attr & faDirectory) && sr.Name!= \{

TreeView3-> Items-> AddChild(Node1,sr.Name); }

} while (FindNext(sr) == 0); FindClose(sr); }

在TreeView3的OnChangeing事件中加入:

Screen-> Cursor=crHourGlass; Animate1-> Active=true; TSearchRec sr;

TTreeNode * NodeTmp=Node; AnsiString DirName,DirTmp; DirName=Node-> Text;

for(int I=Node-> Level ;I> 0 ;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 Count;J++) {

if(Node-> Item[J]-> Count==0); {

if (FindFirst(DirName+Node-> Item[J]-> Text+ \0) { do {

if((sr.Attr & faDirectory) && sr.Name!= \{

TreeView3-> Items-> AddChild(Node-> Item[J] ,sr.Name); }

} while (FindNext(sr) == 0);

FindClose(sr); } } }

Screen-> Cursor=crDefault; Animate1-> Active=false;

好了,程序代码加入完后,将各个组件排列一下,按F9再编译运行一次,这三种将目录树的结构装入TreeView中的方法,你比较喜欢那一种呢?自己比较一下吧。以上的程序在Win98/Win2000,Borland C++ Builder 6.0下运行通过。


bcb中同时显示文件和文件夹的控件(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:国标等级英语预备级 1b Unit 2教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: