首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 資源管理器風格介面:Shell Controls (TShellTreeView/ListView) 完整實作

     編輯:Delphi

需求類似檔案總管的 UI,嘗試舊世代 TDriveComboBox/TDirectoryListBox/TFileListBox (Win 3.1 遺物,醜陋不堪) 後,發現 Vcl.Shell.ShellCtrls 單元提供的 Shell Controls 才是現代正解。

核心元件介紹

  • TShellComboBox:資料夾下拉選單 (可替代 DriveComboBox)
  • TShellTreeView:資料夾樹狀結構
  • TShellListView:檔案清單檢視

完整實作程式碼

uses Vcl.Shell.ShellCtrls; 

var 
  C: TShellComboBox; 
  T: TShellTreeView; 
  L: TShellListView; 

procedure TForm1.FormCreate(Sender: TObject); 
begin 
  C := TShellComboBox.Create(Self); 
  T := TShellTreeView.Create(Self); 
  L := TShellListView.Create(Self); 
  
  C.Parent := Self; 
  T.Parent := Self; 
  L.Parent := Self; 
  
  { 版面配置:ComboBox 頂部、TreeView 左側、ListView 填滿 }
  T.Width := Screen.Width div 4; 
  C.Align := alTop; 
  T.Align := alLeft; 
  L.Align := alClient; 
  
  { 關聯三大元件:ComboBox ↔ TreeView ↔ ListView }
  T.ShellComboBox := C; 
  L.ShellTreeView := T; 
  
  L.ViewStyle := vsList; { 清單檢視模式 }
  T.OnChange := TreeViewOnChange; 
end; 

procedure TForm1.TreeViewOnChange(Sender: TObject; Node: TTreeNode); 
begin 
  Caption := T.SelectedFolder.PathName; { 標題列顯示當前路徑 }
end;

關鍵屬性與事件

元件關鍵屬性/事件說明
TShellTreeViewShellComboBox關聯下拉選單,同步顯示路徑
TShellListViewShellTreeView關聯樹狀圖,同步顯示選中資料夾內容
TShellListViewViewStylevsIcon/vsList/vsReport/vsSmallIcon
TShellTreeViewOnChange選中資料夾變更事件
TShellTreeViewSelectedFolder.PathName取得完整路徑字串

優勢總結

  • 零配置:自動列舉磁碟機、特殊資料夾 (桌面、我的文件等)
  • 原生外觀:完美符合當前 Windows 版本視覺風格
  • 完整功能:支援圖示、縮圖、詳細資訊、右鍵選單等 Shell 擴充功能
  • 效能優異:虛擬模式按需載入,大資料夾也流暢
  • 跨版本相容:XP 至 Win 11 皆正常運作

棄用 20 年前的 FileCtrl 元件,擁抱 ShellCtrls 才是構建現代檔案管理介面的正確選擇。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved