在线现看午夜福利片|女人16久久免费视频|鲁丝片一区鲁丝片二区鲁丝|一区二区三区欧美在线

  1. 
    
    <b id="glvx9"></b>
        1. <blockquote id="glvx9"><meter id="glvx9"></meter></blockquote>
            首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
            2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試
            MPA考試 | 中科院
            四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
            新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語
            計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
            華為認證 | Java認證
            公務員 | 報關員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導游資格
            報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
            人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
            駕駛員 | 網(wǎng)絡編輯
            衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護士
            會計從業(yè)資格考試會計證) | 經(jīng)濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師
            注冊資產(chǎn)評估師 | 高級會計師 | ACCA | 統(tǒng)計師 | 精算師 | 理財規(guī)劃師 | 國際內(nèi)審師
            一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
            質量工程師 | 物業(yè)管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產(chǎn)估價師 | 土地估價師 | 巖土師
            設備監(jiān)理師 | 房地產(chǎn)經(jīng)紀人 | 投資項目管理師 | 土地登記代理人 | 環(huán)境影響評價師 | 環(huán)保工程師
            城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
            繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
            您現(xiàn)在的位置: 考試吧(Exam8.com) > 計算機等級考試 > 計算機二級 > Delphi > 復習資料 > 正文

            2011年計算機等級考試Delphi講義:文件管理

            來源:考試吧Exam8.com) 2010-10-27 14:27:37 考試吧:中國教育培訓第一門戶 模擬考場
            本章首先介紹Delphi文件管理的基本概念和標準過程/函數(shù),并提供了一個記錄文件的應用實例,這是從我們實際課題開發(fā)中提取出來的。而后介紹Delphi提供的文件控件的使用方法。最后提供的一個綜合例程MDI文件管理器則是對Delphi文件管理功能的綜合應用。

              6.3.3 文件名瀏覽查找系統(tǒng)的功能和實現(xiàn)

              6.3.3.1 按指定后綴名顯示當前目錄中的文件

              實現(xiàn)這一功能只需要在控件間建立正確的聯(lián)系即可,不需要代碼支持。建立聯(lián)系的方法如(6.3.1)中的介紹。

              6.3.3.2 把選中的文件添加到列表框中

              在FileListBox1的OnClick事件中:

              procedure TFileCtrForm.FileListBox1Click(Sender: TObject);

              begin

              if Searched then

              begin

              Searched := False;

              ListBox1.Items.Clear;

              Label5.Caption := 'Selected Files';

              end;

              if NotInList(ExtractFileName(FileListBox1.FileName),ListBox1.Items) then

              ListBox1.Items.Add(ExtractFileName(FileListBox1.FileName));

              end;

              Searched是一個全局變量,用于標明ListBox1當前顯示內(nèi)容是查找的結果還是從FileListBox1中選定的文件。

              函數(shù)NotInList用于判斷待添加的字符串是否已存在于一個TStrings對象中。函數(shù)返回一個布爾型變量。

              NotInList的具體實現(xiàn)如下。

              Function TFileCtrForm.NotInList(FileName: String;Items: TStrings): Boolean;

              var

              i: Integer;

              begin

              for I := 0 to Items.Count-1 do

              if Items[i] = FileName then

              begin

              NotInList := False;

              Exit;

              end;

              NotInList := True;

              end;

              6.3.3.3 按指定匹配字符串顯示當前目錄中的文件

              當在FileEdit中輸入一個匹配字符串,并回車,文件列表框將顯示匹配結果。這一功能在FileEdit的OnKeyPress事件中實現(xiàn)。

              procedure TFileCtrForm.FileEditKeyPress(Sender: TObject; var Key: Char);

              begin

              if Key = #13 then

              begin

              FileListBox1.ApplyFilePath(FileEdit.Text);

              Key := #0;

              end;

              end;

              文件列表框提供的ApplyFilePath方法是解決這一問題的關鍵所在。

              6.3.3.4 按指定匹配字符串查找當前目錄中的文件

              為了進行比較,我們用另一種方法來實現(xiàn)文件的查找功能,即利用標準過程FindFirst、FindNext。FileList1與ListBox1 中的內(nèi)容完全一致。

              當用戶單擊“查找”按鈕時,與FileEdit 中字符串相匹配的文件將顯示在ListBox1中。下面是實現(xiàn)代碼。

              procedure TFileCtrForm.Button1Click(Sender: TObject);

              var

              i: Integer;

              SearchRec: TSearchRec;

              begin

              Searched := True;

              Label5.Caption := 'Search Result';

              ListBox1.Items.Clear;

              FindFirst(FileEdit.text,faAnyFile,SearchRec);

              ListBox1.Items.Add(SearchRec.Name);

              Repeat

              i := FindNext(SearchRec);

              If i = 0 then

              ListBox1.Items.Add(SearchRec.Name);

              until i <> 0;

              end;

              SearchRec是一個TSearchRec類型的記錄。TSearchRec的定義如下:

              TSearchRec = record

              Fill: array[1..21] of Byte;

              Attr: Byte;

              Time: Longint;

              Size: Longint;

              Name: string[12];

              end;

              在這一結構中提供了很多信息,靈活應用將給編程帶來很大方便。下面我們舉幾個例子。

              1. 檢測給定文件的大小。

              function GetFileSize(const FileName: String): LongInt;

              var

              SearchRec: TSearchRec;

              begin

              if FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec) = 0 then

              Result := SearchRec.Size

              else

              Result := -1;

              end;

              這一程序將在下一節(jié)中應用。

              2. 獲取給定文件的時間戳,事實上等價于FileAge函數(shù)。

              function GetFileTime(const FileName: String): Longint;

              var

              SearchRec: TSearchRec;

              begin

              if FindFirst(ExpandFileName(FileName),faAnyFile, SearchRec) = 0 then

              Result := SearchRec.Time

              else

              Result := -1;

              end;

              3. 檢測文件的屬性。如果文件具有某種屬性,則

              SearchRec.Attr And GivenAttr > 0

              屬性常量對應的值與意義如下表:

              表6.6 屬性常量對應的值與意義

              ━━━━━━━━━━━━━━━━━━━━

              常量 值 描述

              ─────────────────────

              faReadOnly $01 只讀文件

              faHidden $02 隱藏文件

              faSysFile $04 系統(tǒng)文件

              faVolumeID $08 卷標文件

              faDirectory $10 目錄文件

              faArchive $20 檔案文件

              faAnyFile $3F 任何文件

              ━━━━━━━━━━━━━━━━━━━━

              6.4 文件管理綜合舉例:文件管理器的實現(xiàn)

              在本章的最后,我們利用Delphi提供的文件控件和文件管理函數(shù)開發(fā)一個簡單的文件管理器。雖然這一文件管理器還無法和Windows提供的文件管理器相比擬,但它也為一般的文件操作提供了足夠多的功能,而且如果讀者感興趣,還可以對它做進一步的擴充。在后邊的拖放操作一章中,我們就為它提供了拖放支持,使它看起來更象一個“文件管理器”。

              6.4.1 設計基本思路

              6.4.1.1 窗口設計

              文件管理器的主窗口是一個多文檔界面(MDI)。有關文件、目錄的顯示和文件管理功能的實現(xiàn)都放在子窗口中。在程序執(zhí)行過程中將根據(jù)需要彈出一些完成不同操作的對話框。這些對話框都是在需要時動態(tài)生成的。表6.7給出了本程序所設計窗體的清單。

              表6.7 FileManger窗體清單

              ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

              窗體類 功能 用于創(chuàng)建該類窗體的菜單項

              ──────────────────────────────────────

              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 輸入待創(chuàng)建的子目錄 Directory|CreateDirectory

              TAboutBox 顯示版權信息 Help|About

              ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

              6.4.1.2 界面設計

              主窗口界面主要是主菜單和用于表示當前目錄、當前文件的狀態(tài)條。

              表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) 標志網(wǎng)絡驅動器

              Vsible=False

              Floppy(Image) Picture(Floppy.bmp) 標志軟驅

              Visible=False

              Fixed(Image) Picture(Fixed.bmp) 標志硬驅

              Visible=False

              ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

              子窗口主菜單包括File、Function、Directory三個菜單項, 分別用于完成文件的基本管理功能、其它管理功能和目錄管理功能。

              由于對話框界面設計很簡單,這里不再進行贅述。 讀者可直接參考后面將給出的對話框界面圖(圖6.8---6.13)進行設計。

              6.4.2 子窗口的創(chuàng)建、布置和關閉

              子窗口的創(chuàng)建、布置由父窗口的Windows菜單控制,其菜單項如下:

              ● New Windows : 創(chuàng)建新的子窗口

              ● Tile : 平鋪

              ● Cascade : 層疊

              ● ArrangeIcon : 排列圖標

              ● Minimized All : 極小化所有子窗口

              子窗口的創(chuàng)建只需要簡單調用窗體的Create方法:

              FileMan := TFMForm.Create(Application);

              子窗口的標準排列方式直接調用MDI窗口的標準方法Tile、Cascade和ArrangeIcons。

              極小化所有子窗口的實現(xiàn)利用MDI窗口的兩個屬性:MDIChildCount和MDIChildren:

              for i := 0 to MDICount - 1 do

              MDIChildren[i].Windowstate := wsMinimized;

              子窗口關閉時釋放內(nèi)存空間,為此在子窗口TFMForm的OnClose事件中令

              Action := OnFree;

              為了保持和Windows的File Manager的一致性,我們也禁止關閉最后一個子窗口,這需要在子窗口的OnCloseQuery事件處理過程中實現(xiàn):

              If FileManager.MDIChildCount <= 1 then

              CanClose := False;

              CanClose是OnCloseQuery事件過程返回的一個參數(shù),用于判定窗口是否可以關閉。

              由于這一過程歸子窗口所有,因而MDIChildCount前必須加上其對象名FileManager。

              但不幸的是:這樣一來我們的程序無法終止了!原來MDI窗口關閉前首先關閉其所有的子窗口。如果子窗口不能關閉,MDI窗口也不能關閉。

              為此我們需要判斷發(fā)出關閉消息的是子窗口的系統(tǒng)菜單還是菜單的Exit項。

            上一頁  1 2 3 4 5 6 7 8 9 下一頁
              相關推薦:2010年9月計算機等級考試試題及答案解析專題
                   預告:名師解析2010年9月計算機等級考試試題答案
                   2010年9月計算機等級考試成績查詢時間及入口
                   2010年9月計算機等考成績查詢短信免費提醒開通
            文章搜索
            版權聲明:如果計算機等級考試網(wǎng)所轉載內(nèi)容不慎侵犯了您的權益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。