builder如何利用treeview做文件列表

问题描述

builder如何利用treeview做文件列表
就是要做出类似windows管理器的树列表,该怎么做呢,用treeview做,但是怎么在treeview里显示文件列表,求各位大神

解决方案

资源管理器左边区域显示目录的是treeview,而右边显示文件和目录的是ListView,是两个不同的控件

解决方案二:
资源管理器左边区域显示目录的是treeview,而右边显示文件和目录的是ListView,是两个不同的控件

解决方案三:

// 完美解决方案void __fastcall TForm1::Button1Click(TObject *Sender){  String Path=Edit1->Text;    if(Path.SubString(Path.Length()1)!=""\""){      Path+=""\"";    }  TTreeNode * Node1=TreeView3->Items->Add(NULLPath);  TSearchRec sr;  TSearchRec sr1;    if(FindFirst(Path+""*.*"" faAnyFile sr) == 0){        do{            if((sr.Attr & faDirectory) && sr.Name!=""."" && sr.Name!=""..""){              TTreeNode * NodeTmp=TreeView3->Items->AddChild(Node1sr.Name);                    if(FindFirst(Path+sr.Name+""\*.*"" faAnyFile sr1) == 0){                        do{                            if((sr1.Attr & faDirectory) && sr1.Name!=""."" && sr1.Name!=""..""){                              NodeTmp->HasChildren=true;                              break;                            }                        }while(FindNext(sr1) == 0);                    }            }        } while (FindNext(sr) == 0);      FindClose(sr);    }}//---------------------------------------------------------------------------void __fastcall TForm1::TreeView3Changing(TObject *Sender TTreeNode *Node bool &AllowChange){  Screen->Cursor=crHourGlass;  //Animate1->Active=true;  //防止重复增加节点    if(Node->Count==0){      TSearchRec sr;      TSearchRec sr1;      String DirNameDirTmp;      TTreeNode * NodeTmp=Node;      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(DirTmp0);        }        if(DirName.SubString(DirName.Length()1)!=""\""){          DirName+=""\"";        }        if(FindFirst(DirName+""*.*"" faAnyFile sr) == 0){            do{                if((sr.Attr & faDirectory) && sr.Name!=""."" && sr.Name!=""..""){                  TTreeNode * NodeTmp=TreeView3->Items->AddChild(Nodesr.Name);                    if(FindFirst(DirName+sr.Name+""\*.*"" faAnyFile sr1) == 0){                        do{                            if((sr1.Attr & faDirectory) && sr1.Name!=""."" && sr1.Name!=""..""){                              NodeTmp->HasChildren=true;                              break;                            }                        }while(FindNext(sr1) == 0);                    }                }            }while(FindNext(sr) == 0);          FindClose(sr);        }    }  Screen->Cursor=crDefault;  //Animate1->Active=false;}//---------------------------------------------------------------------------void __fastcall TForm1::TreeView3MouseDown(TObject *Sender TMouseButton Button TShiftState Shift          int X int Y){  // 因为上面的代码是在选中了节点后执行的,当点击“+”时不会添加下层节点(要先选中然后点+才可以),此处解决了此问题  // 当点“+”后自动添加子节点并展开    //if(Button==mbLeft) // 按鼠标左键选中节点    //if(Button==mbRight) // 按鼠标右键选中节点    {      //TTreeNode *&temp_node=TreeView1->GetNodeAt(XY);        //if(temp_node!=NULL){        if(TreeView3->GetNodeAt(XY)!=NULL)        {          //temp_node->Selected=true;          TreeView3->GetNodeAt(XY)->Selected=true;          TreeView3->Selected->Expand(true); // 展开选中的节点          //下面判断temp_node的Caption或Data,然后,修改PopupMenu          //ShowMessage(""Hello"");        }    }}
时间: 2024-10-08 20:40:19

builder如何利用treeview做文件列表的相关文章

利用Treeview实现树形列表

treeview 以前,在WEB页面中如果想使用树形控件的话,往往会有些麻烦,有时甚至要自己写代码来达到用树形列表显示数据的目的.在asp.net中,我们可以很方便地使用由微软提供的Internet Exploer Web Controls控件来实现树形列表.在微软提供的这套Internet Exploere Web Controls控件集合中,包括有MultiPage,TabStrip,TOOLbar,Treeview控件.在这篇文章中,我们来看在ASP.net中如何使用Treeview控件和

C++ Builder中利用组件传送文件

在Borland C++ Builder中,使用NMStrmServ和NMStrm组件可以很容易地在两台电脑之间传递文件.当然,你也可以使用基于FTPJ协议的文件传输组件NMFTP,但使用NMStrmServ和NMStrm组件更加方便.快捷. 首先,运行Borland C++ Builder,在窗体Form1中加入一个NMStrmServ组件和一个保存对话框组件SaveDialog. 然后在NMStrmServ1的OnMSG事件中加入: //保存文件对话框 if(SaveDialog1->Exe

Asp.net利用RAR做文件压缩解压缩

如果服务器上安装了RAR程序,那么asp.net可以调用RAR实现文件压缩与解压缩. 不过要注意的是,由于Web程序不能直接调用客户端的程序(除非用ActiveX,ActiveX几乎被废弃),所以如果要想实现让用户把本地文件用网页解压缩只有把文件上传到服务器上再调用服务器上的RAR压缩,同理要解压缩本地的RAR文件可以把文件上传到服务器解压再拿回来. 本文讲怎么在服务器端的目录解压缩文件! 前台代码: <%...@ Page Language="C#" AutoEventWire

关于TreeView做文件浏览器的问题

问题描述 如图,想要做成这种格式,子节点以新建文件夹的格式显示,可以重命名,而且文件可以直接进行拖拽,该怎么弄呢?或者有么有其它控件可以实现? 解决方案

Windows XP利用TC快速创建文件列表

TC(Total Commander)是很多朋友都非常喜欢的一款超强资源管理工具,其实我们还可以利用TC快速创建文件列表并进行管理.例如,笔者希望获取"C:\Windows\SYSTEM32"文件夹下的所有可执行文件名,可以按照如下步骤进行: 第1步:设置显示类型 首先,请在主界面中打开C:\Windows\SYSTEM32文件夹,由于我们的目的是希望获取所有可执行文件名,因此需要在"显示→文件显示"菜单中选中"仅执行文件",这样将只列出EXE.

利用Lotus Connections Widget整合SharePoint文件列表

简介 随着社交软件在企业工作中越来越多的发挥作用,Lotus Connections (LC) 作为 IBM 公司一款 面向企业用户的社交协同软件,已经被很多企业部署用于提 高工作效率和管理内部资源.微软 SharePoint 也是业界流行的一款企业协作平 台,它的优势在于其高效的文档管理.在一个同时部署了 LC 和 SharePoint 的 企业,为了将两者的优势整合起来,我们可以借助于 LC 灵活的 widget 系统, 将 SharePoint 中的文件列表在 LC 的 widget 中显

CB环境中实现在菜单中显示历史文件列表

本文介绍了如何在Windows环境下实现菜单中显示历史文件列表,同时概要介绍了Tregistry类的使用方法. 现在,在许多Windows应用程序都具有这样一个功能:可以在文件菜单下面显示列出最近访问过的文件,这使用户很容易再次访问曾经访问过的文件.在过去几年中,这项技术以成为拥有文件菜单项的应用程序的共同特色:如Wps系列和Office系列.在以前的DOS环境中,程序员一般通过创建一个文件用来记录文件列表:那么在Windows环境中,还有其他的方法吗?最近笔者利用C++ Builder5.0

[转贴]利用伪造内核文件来绕过IceSword的检测

[转贴]利用伪造内核文件来绕过IceSword的检测   作者:倪茂志邮件:backspray008@gmail.com完成于:2005.12.20 文章分为八个部分:   一.为什么需要伪造内核  二.伪造内核文件  三.隐藏进程  四.隐藏内核模块  五.隐藏服务  六.隐藏注册表  七.隐藏文件  八.关于端口 另:建议先看看最后那些参考文章. 一.为什么需要伪造内核:   I

Eclipse快速上手Hibernate--2. 利用Hbm映射文件开发

   这篇文章是上篇文章<Eclipse快速上手Hibernate--1. 入门实例>的延续,主要说的是如何利用Hbm映射文件产生普通的Java对象及数据表.可以参考Hibernate自带的文档<HIBERNATE - 符合Java习惯的关系数据库持久化>的第15章--<工具箱指南>一节.同样,这篇文章没有过多谈理论,只是给出了一个完整的实例加以说明.相关配置请参考上篇文章.  1. 创建项目 ·  新建一个Java项目:HibernateBegin_2,注意选中&qu