6.4.6.3 改變顯示文件的類型
改變顯示文件的類型事實上是設置FileList的Mask屬性。我們利用一個標准的InputBox輸入文件的匹配字符串。而後利用Update方法更新FileList。
procedure TFMForm.Viewtype1Click(Sender: TObject);
var
FileMask: String;
begin
FileMask := InputBox('File type','Input File type For View :',FileList.Mask);
If FileMask = '' then FileMask := '*.*';
FileList.Mask := FileMask;
FileList.Update;
CreateCaption;
end;
其中的CreateCaption私有過程將在(6.4.8)中進行介紹。
6.4.7 目錄管理功能的實現
在子窗口的Directory菜單中,提供了目錄管理功能:
● Create Directory :創建一個子目錄
● Delete Directory :刪除一個空的子目錄
● Change Directory :改變當前目錄
6.4.7.1 創建目錄
創建目錄時首先彈出一個TNewDir類型的對話框
對話框中要求用戶輸入目錄名。如果用戶不輸入路徑,則缺省認定為當前目錄的子目錄:
Dir := ExpandFileName(DirName.Text);
而後調用MkDir函數。在目錄創建過程中關閉了I/O錯誤檢測,出錯不產生異常而是把IOResult設置為非零值。通過檢查IOResult是否為0可以確定創建是否成功。
程序清單如下:
procedure TFMForm.CreateDirectory1Click(Sender: TObject);
var
NewDir: TNewDir;
Dir: String;
begin
{$I-}
NewDir := TNewDir.Create(self);
with NewDir do
begin
CurrentDir.Caption := DirectoryOutline.Directory;
if (ShowModal <> idCancel) and (DirName.Text <> '') then
Dir := ExpandFileName(DirName.text);
end;
MkDir(Dir);
if IOResult <> 0 then
MessageDlg('Cannot Create directory', mtWarning, [mbOk], 0);
end;
但不幸的是目錄創建後我們卻無法從當前目錄樹中看到。必須移到另一個驅動器而後再返回,創建的目錄才是可見的。在後邊我們將提供一種解決方法。