6.4 文件管理綜合舉例:文件管理器的實現
在本章的最後,我們利用Delphi提供的文件控件和文件管理函數開發一個簡單的文件管理器。雖然這一文件管理器還無法和Windows提供的文件管理器相比擬,但它也為一般的文件操作提供了足夠多的功能,而且如果讀者感興趣,還可以對它做進一步的擴充。在後邊的拖放操作一章中,我們就為它提供了拖放支持,使它看起來更象一個“文件管理器”。
6.4.1 設計基本思路
6.4.1.1 窗口設計
文件管理器的主窗口是一個多文檔界面(MDI)。有關文件、目錄的顯示和文件管理功能的實現都放在子窗口中。在程序執行過程中將根據需要彈出一些完成不同操作的對話框。這些對話框都是在需要時動態生成的。表6.7給出了本程序所設計窗體的清單。
表6.7 FileManger窗體清單
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
窗體類 功能 用於創建該類窗體的菜單項
──────────────────────────────────────
TFileManager 主窗口
TFMForm 子窗口 Windows|New Window
TFileAttrForm 顯示文件屬性 File|Properties;Function|Search
TChangeForm 文件移動、拷貝、改名、改變 File|Move.Cope.Rename 當前目錄等操作的輸入對話框 Directory|change Directory
TSearchForm 輸入待查找文件的名稱和路徑 Function|Search
TDiskViewForm 顯示磁盤信息 Function|Disk View
TViewDir 輸入待創建的子目錄 Directory|CreateDirectory
TAboutBox 顯示版權信息 Help|About
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6.4.1.2 界面設計
主窗口界面主要是主菜單和用於表示當前目錄、當前文件的狀態條。
表6.8 主窗口界面設計
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部件 屬性 功能
─────────────────────────────
FileManager Style=fsMDI 主窗口
WindowMenu=Windows
Position=poDefault
MainMenu1 主菜單
FilePanel Align=alBottom 顯示當前選中文件
BevelInner=bvLowered
BevelWidth=2
DirectoryPanel Align=alBottom 顯示當前選中目錄
Alignment=taLeftJustify
BevelInner=bvLowered
BevelWidth=2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
主窗口主菜單包括File、WIndows、Help三項。File菜單項在子窗口生成時被子窗口同名菜單項所取代。設置Windows、Help的GroupIndex = 9,可以使子窗口生成時這兩個菜單項仍存在。
子窗口界面包括主菜單、目錄樹(DirectoryOutline)、文件列表框、 用於顯示驅動器的標簽集(TabSet)以及三個用於顯示驅動器類型的TImage部件。
表6.9 子窗口界面設計
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
部件 屬性 功能
───────────────────────────────────────
FMForm ActiveControl=DirectoryOutline 子窗口
Position=poDefault
Style=fsMDIChild
MainMenu1 主菜單
DriveTabSet Align=alTop 顯示驅動器
style=tsOwnerDraw
DirectoryOutline Align=alLeft 顯示當前驅動器的目錄樹
options=[ooDrawTreeRoot,
ooDrawFocusRect,ooStretchBitmaps]
FileList Align=alClient 顯示當前目錄中的文件
FileType=[ftReadOnly,
ftHidden,ftSystem,ftArchive,ftNormal]
ShowGlyphs=True
Network(Image) Picture(Network.bmp) 標志網絡驅動器
Vsible=False
Floppy(Image) Picture(Floppy.bmp) 標志軟驅
Visible=False
Fixed(Image) Picture(Fixed.bmp) 標志硬驅
Visible=False
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
子窗口主菜單包括File、Function、Directory三個菜單項, 分別用於完成文件的基本管理功能、其它管理功能和目錄管理功能。