//文件或目录转换成 TreeView

procedure DirToTreeView(Tree: TTreeView; Directory:
string; Root: TTreeNode;
IncludeFiles:
  Boolean);
var
  SearchRec         :
TSearchRec;
  ItemTemp          :
TTreeNode;
begin
  with Tree.Items do
  try
    BeginUpdate;
    if Directory[Length(Directory)] <> '\' then Directory :=
Directory + '\';
    if FindFirst(Directory +
'*.*', faDirectory, SearchRec) = 0 then
    begin
      repeat
        if (SearchRec.Attr and faDirectory =
faDirectory) and (SearchRec.Name[1] <> '.') then
        begin
          if (SearchRec.Attr and faDirectory >
0) then
            Root
:= AddChild(Root,
SearchRec.Name);
          ItemTemp
:=
Root.Parent;
          DirToTreeView(Tree,
Directory + SearchRec.Name, Root,
IncludeFiles);
          Root
:=
ItemTemp;
        end
        else if
IncludeFiles then
          if SearchRec.Name[1]
<> '.' then
            AddChild(Root,
SearchRec.Name);
      until FindNext(SearchRec) <> 0;
      FindClose(SearchRec);
    end;
  finally
    EndUpdate;
  end;
end;

procedure TForm1.ToolButton7Click(Sender:
TObject);
var
  node:TTreeNode;
begin
    node:=nil;//放在OnCreate下面可以正常
    DirToTreeView(TreeView1,'Z:\',node,False);
end;

随机推荐

  1. 一个从数据库中把数据导成txt的笨办法

    create directory DIR_DUMP as '/oradata/data_dump'; CREATE OR REPLACE PROCEDURE anlp_to_txt IS testji ...

  2. Something you need to perform after RedHat 6.x installed

    Something you need to perform after RedHat 6.x installed YUM Repos % yum update % rpm -Uvh http://do ...

  3. Linux基本操作1 - 设备操作

    Linux开发的过程中,肯定会使用到很多设备,所以对设备的挂载卸载是一个很基本的操作. Linux对设备的默认定义如下: 一.Linux中的硬件设备号     设 备          设 备 号   ...

  4. [Unity3D][Vuforia][IOS]vuforia在unity3d中添加自己的动态模型,识别自己的图片,添加GUI,播放视频

    使用环境 unity3D 5 pro vuforia 4 ios 8.1(6.1) xcode 6.1(6.2) 1.新建unity3d工程,添加vuforia 4.0的工程包 Hierarchy中 ...

  5. C#虚方法认识

    C# 中虚方法 1.具体的是new后面具体是那个类,调用的是该类的实现方法.不和基类有关,虽然可以将子类赋值给基类句柄. 但是具体还是调用具体实例化的方法.

  6. Java调用MySQL存储过程

    Java调用MySQL的存储过程,需要用JDBC连接,环境eclipse 首先查看MySQL中的数据库的存储过程,接着编写代码调用 mysql> show procedure status; + ...

  7. pyinstaller打出的EXE包执行时报错“failed to excute ”信息

    我的程序是selenium自动化脚本,打包时执行的是 Python pyinstaller -F --onefile -w  XXX.py 这样打出的包执行后提示“failed to excute s ...

  8. uglifyjs note

    uglifyjs UglifyJS is a JavaScript parser, minifier, compressor or beautifier toolkit. uglifyjs是用js写的 ...

  9. 声明式开发 &amp; 命令式开发

    何为声明式开发,何又为命令式开发~~~ 这里我不做太多概念的剖析,我们只要明确一个: 声明式开发只是告诉计算机需要什么,而不是把每一步都计划好:典型代表为React: 命令式开发则是每一步明确的去操作 ...

  10. [转]Request Flow for Provisioning Instance in Openstack

      One of the most important use-case in any cloud is provisioning a VM . In this article we shall do ...