用Delphi設計制作一個文件管理器。在上一文中主要介紹了這種資源管理器的設計思路和編寫步驟,若要了解請參見“Delphi設計資源管理器 原理及思路”。本節主要介紹文件管理器的具體代碼編寫,對一些關鍵性代碼進行分析。
(1)如果想在程序運行過程中,動態跟蹤驅動器的變化,就要在DriveComboBox 控件的DriveComboBox1Change()事件中添加響應驅動器改變的代碼,其中最為關鍵的一句是:Form1.DirectoryListBox1.Drive:=Form1.DriveComboBox1.Drive,將它的變化通知給DirectoryListBox,使它們在內容上保持一致。
procedure TForm1.DriveComboBox1Change(Sender: TObject); begin Form1.DirectoryListBox1.Drive:=Form1.DriveComboBox1.Drive; //跟蹤DriveComboBox 的變化 end;
(2)在程序運行時,要隨時使四個控件在內容上保持一致,一個控件的內容發生了變化,應該隨時通知其他文件類型控件。當DirectoryListBox 控件發生變化時,應該添加相應TForm1.DirectoryListBox1Change()事件。
procedure TForm1.DirectoryListBox1Change(Sender: TObject); begin Form1.FileListBox1.Directory:=Form1.DirectoryListBox1.Directory; //跟蹤DirectoryListBox 的變化 end;
(3)當文件列表框中文件發生變化時,Edit 文本框中的文件路徑也要發生相應變化,應該添加相應的TForm1.FileListBox1Change()事件。
procedure TForm1.FileListBox1Change(Sender: TObject); begin Edit1.Text:=filelistbox1.Directory; //Edit 文本框中添加文件路徑 end;
(4)當點擊文件列表框中的文件名時,路徑文本框中添加相關文件的名字,這需要添加TForm1.FileListBox1Click()事件。
procedure TForm1.FileListBox1Click(Sender: TObject); begin Edit1.Text:=filelistbox1.FileName; //Edit 文本框中添加文件名 end;
(5)當點擊“刪除文件夾”按鈕時,程序給出“你想刪除文件夾嗎?”的提示,如果確認之後,程序執行刪除相關文件夾的操作,如果相關文件夾不存在,程序將給出“此文件夾不存在”的出錯信息。代碼如下:
procedure TForm1.Button1Click(Sender: TObject); //刪除文件夾 begin if DirectoryExists (Edit1.Text) then begin if MessageDlg (’你想刪除文件夾 ’ + Edit1.Text + ’ 嗎?’, mtConfirmation, [mbYes, mbNo], 0) = mrYes then //確認提示 rmdir(Edit1.Text); //刪除文件夾 end else MessageDlg (’此文件夾不存在!’, mtError, [mbOk], 0); //出錯提示 end;
(6)當點擊“創建新文件夾”按鈕時,程序給出“你想創建新文件夾嗎?”的提示,如果確認之後,程序將在當前路徑下創建指定名字的文件夾,如果當前路徑下存在該文件夾,程序將給出“該文件夾已經存在”的出錯信息。相關代碼如下:
procedure TForm1.Button2Click(Sender: TObject); begin if DirectoryExists (Edit1.Text) then showmessage(’該文件夾已經存在!’) //出錯提示 else begin if MessageDlg (’你想新建文件夾 ’ + Edit1.Text + ’ 嗎?’, mtConfirmation, [mbYes, mbNo], 0) = mrYes then //確認提示 ForceDirectorIEs (Edit1.Text); //創建新文件夾 end; end;
Delphi設計文件管理器完整代碼:
vIEw source