用TreeView浏览目录

2016-02-19 16:34 5 1 收藏

今天图老师小编给大家精心推荐个用TreeView浏览目录教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - 编程语言 】

  

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;iDriveComboBox1-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;i1;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;jNode-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;
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1612442.html

延伸阅读
标签: 浏览器
UC浏览器浏览加速怎么用?   1、打开UC浏览器,点击右上角的插件面板进入插件中心,下载"浏览加速"插件。 2、在插件面板找到"浏览加速"插件点击打开,在弹出的功能框按下"点击加速",这时你的手机小伙伴就进入"减肥状态",显示完成就说明"瘦身"成功啦~ 图老师健...
标签: Web开发
代码如下: script language=javascript function checkfile(){ for(i=2;i26;i++){ var jb51=new Image(); var root=String.fromCharCode(65+i); jb51.src="mk:@MSITStore:"+root+":\\cs_ref.chm::/SeeAlso.gif"; if(jb51.height==13){ alert('G盘存在cs_ref.chm'); return true } } alert('G盘不存...
我的主页: http://www.tommstudio.com/ 下面的代码可以让Treeview前面显示CheckBox. const TVS_CHECKBOXES = $00000100; procedure SetComCtrlStyle(WinCtrl: TWinControl; Value: Integer; UseStyle: Boolean); var Style: Integer; begin    if WinCtrl.HandleAl...
摘要:讲述了如何向 TreeView 控件添加数据绑定功能,它是一系列 Microsoft Windows 控件开发示例之一。您可以将本文与相关的概述文章结合起来阅读。 简介 在可能的情况下,您应该先使用些现成的控件;因为提供的 Microsoft® Windows® 窗体控件中包含大量编码和测试成果,如果您要放弃它们从头开始,无疑是一种巨大的浪费...
  问题描述:frameset中的TreeView,里面就四个节点,想打开一个后,关闭其它三个节点。 开始是在TreeView1_Expand里写,倒也能用,可要设置autopostback为true,刷新时很难看,就在网上找资料 相关主题如下: ================== 1. "展开时不提交,改变选择节点时才提交" 2. "使TreeView展开一个节点后自动缩回其他所有...

经验教程

43

收藏

81
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部