程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> TTreeView講解 [13] - 在 TTreeView 中顯示目錄結構(的函數)

TTreeView講解 [13] - 在 TTreeView 中顯示目錄結構(的函數)

編輯:Delphi

 測試效果圖:

TTreeView講解 [13] - 在 TTreeView 中顯示目錄結構(的函數)

unit Unit1; 
 
interface 
 
uses 
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 Dialogs, StdCtrls, ComCtrls, ExtCtrls; 
 
type 
 TForm1 = class(TForm) 
  TreeView1: TTreeVIEw; 
  Panel1: TPanel; 
  Edit1: TEdit; 
  Button1: TButton; 
  procedure Button1Click(Sender: TObject); 
 end; 
 
var 
 Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 
{函數的默認參數是指定顯示在第幾個元素下面} 
function DirToTree(Tree: TTreeVIEw; Path: string; num: Integer = -1): Boolean; 
var 
 sr: TSearchRec; 
 node: TTreeNode; 
begin 
 path := ExcludeTrailingPathDelimiter(path); {去掉最後一個 '\'} 
 if not DirectoryExists(path) then Exit;   {路徑不存在則退出} 
 if num = -1 then node := nil else node := Tree.Items[num]; {確認節點} 
 
 if FindFirst(Path + '\*.*', faAnyFile, sr) = 0 then 
 begin 
  repeat 
   if sr.Name[1] = '.' then Continue;   {如果是'.' 或 '..' (當前目錄或上層目錄)則忽略} 
 
   Tree.Items.AddChild(node, sr.Name);   {都是通過這句添加的} 
 
   Application.ProcessMessages;      {加上可以讓程序兼顧其他消息} 
 
   {如果是文件夾則執行遞歸} 
   if (sr.Attr and faDirectory) = faDirectory then 
    DirToTree(Tree, Path + '\' + sr.Name, Tree.Items.Count-1); 
  until (FindNext(sr) <> 0); 
 end; 
 Result := True; 
end; 
 
{測試} 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 TreeVIEw1.Items.Clear; 
 DirToTree(TreeVIEw1, Edit1.Text); 
end; 
 
end. 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved