程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第六章-文件管理(三)(8)

第六章-文件管理(三)(8)

編輯:Delphi

6.4.8.2 狀態條的顯示 

狀態條用於顯示當前目錄和當前選中文件。它們的值在DirectoryOutline 和FileList的Change事件處理過程中修改。

DirectoryOutline和FileList最終的Change事件處理過程如下: 

procedure TFMForm.DirectoryOutlineChange(Sender: TObject);

begin

CreateCaption;

FileList.clear;

FileList.Directory := DirectoryOutline.Directory;

FileList.Update;

FileManager.DirectoryPanel.Caption := DirectoryOutline.Directory;

end;

procedure TFMForm.FileListChange(Sender: TObject);

begin

with FileList do

begin

if (ItemIndex >= 0) and (Not HasAttr(FileName,faDirectory)) then

begin

TheFileName := FileName;

FileManager.FilePanel.Caption :=

Format('%s, %d bytes', [TheFileName, GetFileSize(TheFileName)]);

end

else

FileManager.FilePanel.Caption := '';

end;

end; 

6.4.8.3 版本信息 

當用戶單擊主窗口的Help|About菜單項時將彈出一個About對話框,用於顯示版本信息(如圖6.13)。

這一對話框是用Delphi提供的模板做的。

6.4.8.4 菜單項的變灰與使能 

File菜單中定義的文件管理功能只有當活動焦點在FileList(即有當前選中文件)時才起作用。否則所有菜單項應變灰,以免導致系統崩潰。

這一功能在File菜單的Click事件處理過程中實現。這一點並不很容易被人想到,希望讀者能從中受到啟發。 

procedure TFMForm.File1Click(Sender: TObject);

var

FileSelected: Boolean;

begin

FileSelected := FileList.ItemIndex >= 0;

Open1.Enabled := FileSelected;

Delete1.Enabled := FileSelected;

Copy1.Enabled := FileSelected;

Move1.Enabled := FileSelected;

Rename1.Enabled := FileSelected;

Properties1.Enabled := FileSelected;

end;

判斷是否有文件被選中是通過檢測ItemIndex屬性是否大於等於0來實現的。

FileSelected := FileList.ItemIndex >= 0; 

6.4.8.5 可重用的文件處理模塊 

庫單元fmxutils是一個代碼庫,提供了若干文件處理模塊。這些模塊除在本程序中使用外,讀者可以在其它應用程序中直接調用,而且不必重新編譯,只要在Uses子句中包含即可。從中我們可以體會到,Delphi 以庫單元為中心的程序組織方式提供了一種較完善的代碼重用機制。 

6.4.9 小結 

文件管理器是一個較為綜合的例程,使用到了絕大部分以文件名、文件句柄以及其它參數(除文件變量)為操作對象的文件管理過程/函數,同時也提供了一些程序設計開發的思想。我們的介紹是以程序功能模塊來組織的,我建議讀者在學習並試圖自己建立這一程序時采用同樣的方法。(6.4.8)中的內容或許是一開始就應了解的,但其它完全可以按順序逐步地擴充,最後得到一個完整的程序。這一例程在後邊的拖放操作和異常處理等章節中還要用到。讀者可以以此為基礎進一步完善它,使它真正成為一個完全實用的程序。

文件管理是在開發一個高級的Windows程序中不可避免的要涉及到的問題。本章介紹的思路和方法將為讀者成為一個熟練的程序員奠定基礎。

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