熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

DELPHI基礎教程:文件管理(二)[2]

2022-06-13   來源: Delphi編程 

  對話框的OnCloseQuery事件處理過程的程序清單如下

  procedure TEditFormFormCloseQuery(Sender: TObject; var CanClose: Boolean)

  var

  Res: Real;

  k: Integer;

  begin

  if IsCancel = False then

  begin

  val(ResulttextResk)

  if (Res > ) or (Res < ) then k := ;

  if k <> then

  begin

  MessageDlg(非法輸入 !mtWarning[mbOK]

  Resulttext := ;

  CanClose := False;

  ResultSetFocus;

  end;

  end;

  end;

   文件和系統的關閉

  文件關閉須調用CloseFile過程

  CloseFile(MethodFile)

  並對系統的狀態重新進行設置

  系統關閉時首先檢測當前是否有打開的文件若有則先關閉文件這在主窗口的OnCloseQuery事件中實現

  實現文件關閉的程序清單如下

  procedure TRecFileFormCloseButtonClick(Sender: TObject)

  begin

  if FileOpened then

  begin

  CloseFile(MethodFile)

  FileOpened := False;

  ClearGrid;

  OpenButtonEnabled := True;

  NewButtonEnabled := True;

  CloseButtonEnabled := False;

  RecFileFormCaption := FormCaption;

  end;

  end;

  實現系統關閉前檢查的程序清單如下

  procedure TRecFileFormFormCloseQuery(Sender: TObject;

  var CanClose: Boolean)

  begin

  if FileOpened then

  closeFile(MethodFile)

  end;

   記錄文件小結

  我們所舉的例子雖然簡單但基本覆蓋了記錄文件操作的主要方面這裡關鍵問題在於靈活應用Delphi提供的文件管理函數同時為了保證程序的健壯性應對異常進行捕獲並處理在數據庫應用技術發展的今天記錄文件的重要性也許有所下降但對象我們這裡所處理的簡單問題它仍有用武之地

  這裡所舉的例子一次只能處理一個文件但讀者可以很容易把它改為一個MDI程序雖然對於這裡的實際情況來說似乎並無必要

   文件控件的應用

  Delphi文件管理的最大特色是提供了一組文件操作控件利用這些控件我們可以快速開發一個文件名浏覽系統其功能強大與其所需書寫代碼之少所形成的強烈反差正是Dephi生命力的體現

   文件控件及其相互關系

  Delphi提供的專用文件控件如下表所示

  表 Delphi專用文件控件

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

  控件名 功能

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

  DriveComboBox 驅動器組合列表框用於選擇當前驅動器

  FileListBox 文件列表框用於顯示當前目錄中的文件和選中當前文件

  FilterComboBox 文件類型組合列表框用於選擇顯示文件的類型

  DirectoryOutline 目錄樹(節專門介紹)

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

  以上控件前四個在Component Palette(部件選擇板)的System頁中DirectoryOutline在Component Palette的Samples頁中

  以上文件控件再加上文件編輯框目錄標簽框(事實上是一般的編輯框標簽框)就可以構成一個完整的文件操作系統它們之間的聯系幾乎不用代碼支持只要設置好相應的屬性就可以了

  FileEditDirLabelFileListBoxFileFilterComloList DirectoryListBoxDriveComboList六個控件間的屬性聯系如下

  DriveComboList DirList := DirectoryListBox;

  DirectoryListBoxDirLabel := DirLabel;

  DirectoryListBoxFileList := FileListBox;

  FileFilterComboListFileList := FileListBox;

  FileListBoxFileEdit := FileEdit;

  以上聯系可以在設計時完成只要打開相應屬性的選擇列表框進行選擇即可也可以在運行時利用如上的賦值語句建立聯系

  文件控件的關鍵屬性基本上都在以上聯系中反映出來了除此之外FileFilterComboList有一個Filter屬性用來設置組合列表框的選擇項FileListBox 有一個Mask屬性用於設置顯示文件的類型這就允許FileListBox在脫離FileFilterComboList單獨應用時仍能根據需要顯示特定的文件節中我們將應用這一功能

  文件控件的方法事件基本是從ListBox和ComboBox中繼承的但FileListBox 中有一個ApplyFilePath方法很有用我們將在後邊給出其用法

   文件名浏覽查找系統的設計思路

  作為文件控件的應用實例我們開發了一個簡單的文件名浏覽查找系統這個系統可用於文件名的顯示把選中的文件寫入列表框並能按文件編輯框中輸入的通配符對文件進行查找

  表 部件的設計

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

  部件 屬性 功能

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

  FileCtrForm Position=poDefault 主窗口

  DirLabel 顯示當前目錄

  FileEdit TabOrder= 顯示當前文件/輸入文件顯示匹配符

  FileListBox FileEdit=FileEdit 顯示當前目錄文件

  DirectoryListBox DirLabel=DirLabel 顯示當前驅動器目錄

  FileList= FileListBox

  DriveComboBox DirList= DirectoryListBox 選擇當前驅動器

  FilterComboBox FileList=FileListBox 選擇文件顯示類型

  Filter=All Files(**)|**|

  Source Files(*pas)|*pas|

  Form Files(*dfm)|*dfm|

  Project Files(*dpr)|*dpr

  ListBox 顯示選中或查找的文件

  Button Caption=查找 按 FileEdit 中的內容進行查找

  Button Caption=退出 退出系統

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

   文件名浏覽查找系統的功能和實現

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

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

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

  在FileListBox的OnClick事件中

  procedure TFileCtrFormFileListBoxClick(Sender: TObject)

  begin

  if Searched then

  begin

  Searched := False;

  ListBoxItemsClear;

  LabelCaption := Selected Files;

  end;

  if NotInList(ExtractFileName(FileListBoxFileName)ListBoxItems) then

  ListBoxItemsAdd(ExtractFileName(FileListBoxFileName))

  end;

  Searched是一個全局變量用於標明ListBox當前顯示內容是查找的結果還是從FileListBox中選定的文件

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25237.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.