第十章 Win31環境下常用的介面早在多年前Windows 95作業系統推出就已經進入Win32 的世界了,但是在Windows 3.1的環境下還是有許多很 好用的介面,雖然看似陽春,可是功能卻也是很完整方 便的在這一章,我們要介紹的就是這些元件這些元 件看起來或許醜了一點,但是在執行效率以及功能上, 可是一點也不含糊喔 大綱• 10-1 檔案列表盒(FileListBox) • 10-2 目錄列表盒(DirectoryListBox) • 10-3 磁碟列表盒(DriveComboBox) • 10-4 檔案類型過濾盒(FilterComboBox) • 10-5 TabbedNotebook元件 • 本章習題前言•早期在Win31系統就支援了很多 到現在都還是很重要的圖形介面 ,其中對於磁碟和磁碟內目錄以 及檔案的管理,即使到了現在, 就功能而言還是一樣的便利為 了不讓程式設計者在建構這些介 面時得花費很多精神在取得磁碟 ,目錄,檔案的資訊,以及表現 成GUI的格式,Borland C++ Builder也提供了一系列的Win31 介面的元件,其中對於磁碟檔案 的處理可以說是提供的很完善。
10-1 檔案列表盒(FileListBox)•檔案列表盒中,對於設計者而言 ,最便利的地方就是可以提供一 個簡單的方法就可以取得 FileName這對於存取檔案而 言,是個簡單又快速的方式使 用者可以利用這個簡單的介面就 可以指定程式所要進行動作的檔 案和路徑在列表盒中顯示了所 有同一個目錄的檔案名稱我們 可以用滑鼠去點選,被點選的檔 案將會被反白,此時檔案列表盒 裡面的FileName屬性就會變成 被點選的那個檔案了 FileName就是 ”c:\AUTOEXEC.BAT” 檔案列表盒的主要屬性 屬性 (Properties) 型態原型 說明 FileEdit TEdit 連結選擇的檔案,提供修 改介面 FileType TFileType 檔案的屬性(如唯讀,隱藏 等) Font Font 檔案顯示的字型 Mask AnsiStrin g 檔案格式的過濾設定 Height Int 顯示方塊的長度 Width Int 顯示方塊的寬度 FileName AnsiStrin g 選擇的檔案路徑和檔名 Directory AnsiStrin g 目前列表的目錄路徑,也 就是列表何所要顯示的目 錄位置。
Drive Char 目前FileListBox所要運作 的磁碟機代號 10-2 目錄列表盒(DirectoryListBox)•目錄列表盒是可以顯示某磁碟機 下所有的目錄結構的列表盒,但 是其主要功能並不是在顯示目錄 結構,而是提供一個方式讓我們 取得目錄路徑以提供給成是作為 目錄資訊,最常用來配合的就是 FileListBox了,我們可以利用 DirectoryListBox所選定的路徑 餵給FileListBox作為目錄的路徑 目錄列表盒的主要屬性 屬性 (Properties) 型態原型 說明 Drive Char 所屬目錄磁碟機 Directory AnsiStrin g 目前選定的目錄 Font Font 目錄顯示的字型 FileList TFileList Box 設定與此相連結的 FileListBox元件 Height Int 顯示方塊的長度 Width Int 顯示方塊的寬度 目錄列表盒使用說明• FileList屬性即可以設定與此元件關聯的FileListBox元件,當 使用者選擇不同的目錄時,這個元件的Directory屬性會自動 傳給所關聯的FileListBox元件,讓FileListBox可以動態的就 改變其所要顯示的檔案。
我們可以看一下以下這段程式碼的 寫法: DirectoryListBox1-FileList = FileListBox1; • 們把DirectoryListBox1裡的FileList屬性指定成FileListBox元 件,如此一來當DirectoryListBox1裡的Directory屬性被使用 者指定更改時,FileListBox1的Directory屬性也會跟著同步 更改 10-3 磁碟列表盒(DriveComboBox)•磁碟列表盒是用來列出電腦內所 有可以工作的磁碟機,用 ComboBox的方式顯示由於是 用ComboBox的方式顯示,因此 磁碟列表盒元件最常用來作為磁 碟機選擇介面的方式,這也是一 般Windows作業系統環境下軟體 最常用的處理方式磁碟列表盒DriveComboBox元件重要屬性列表 屬性 (Properties ) 型態原型 說明 Drive Char 目前所選擇的磁碟機 DirList TDirectoryLi stBox 對應於目錄列表盒型態 Font Font 磁碟顯示的字型 Text AnsiString 磁碟機代號以及磁碟機 標籤 Height Int 顯示方塊的長度 Width Int 顯示方塊的寬度 磁碟列表盒使用說明• 磁碟列表盒可以說是這一系列元件中在繼承結構裡層級最高 的,列表盒中可以顯示磁碟機代號和磁碟機標籤,可以從 Text屬性裡取得。
列表盒中被選定的磁碟機會被存在Drive屬 性裡,我們可以利用這個屬性將資訊傳給 DirectoryComboBox元件,當然我們也可以利用上一節所介 紹的方式直接將DirList屬性指定給所需要的DirectoryListBox 元件如: DriveComboBox1-DirList = DirectoryListBox1; • 在DriveComboBox1-DirList裡有目前被選定的磁碟機資訊 ,我們直接將這個屬性指配給DirectoryListBox1,如此一來 DirectoryListBox1所顯示的目錄就可以跟我們對於 DriveListBox所作的更動同步了 10-4 檔案類型過濾盒(FilterComboBox)•我們知道在FileListBox裡有個 Mask屬性可以讓我們設定顯示 檔案的過濾方式,通常這個動 作都是應用程式在做開啟檔案 時會使用的,為的就是不要讓 其他不相關的檔案也一併顯示 出來但是如果要動態的改變 這個屬性,用手動輸入的方式 是相當不人性化的,這時我們 可以利用專門設計來處理這個 屬性的元件FilterComboBox, 其實我們常用的Windows軟體 也都是用這個方式,相信讀者 應該不陌生。
檔案類型過濾盒FilterComboBox元件重要屬性列表 屬性 (Properties) 型態原型 說明 FileList TFileListB ox 連結FileListBox元件,過濾 顯示檔案 Filter AnsiString 設定列表盒出現的選項 Font Font 列表盒顯示的字型 Mask AnsiString 傳回所選到的Fiter資訊 Height Int顯示方塊的長度 Width Int 顯示方塊的寬度 Text AnsiString 列表盒所被選到的選項內容 檔案類型過濾盒使用說明 I•最重要的兩個屬性就是Filter和 Mask,前者就是程式設計師所 設定的過濾檔案選項,後者則是 使用者從這些選項裡選擇的選項 •同樣的,可以用指定的方式將檔 案類型過濾列表盒的資料直接送 給檔案列表盒,如: FilterComboBox1-FileList = FileListBox1; •當FilterComboBox1的選項被選 定後,FileListBox1所顯示的檔 案類型就會依照選項的設定去做 過濾了至於最重要的設定Filter 決定了列表盒下拉選單的內容檔案類型過濾盒使用說明 II• FilterName為列表盒下拉時的顯示文字,Filter為過濾的檔案 設定,若設定為多檔案格式則使用分號分開,我們從上頁圖 裡面可以看到,在Filter那一欄,有很多地方都是使用萬用字 元(*),這代表任意字串的意思。
所以說*.*表示的就是所有的 檔名和副檔名,也就是任何檔案的意思;而*.txt就是副檔名 為txt的任何檔案被選定的Filter選項會被存入Mask屬性裡 元件綜合範例 I•我們由之前所介紹的幾個元件,就 可以建立一個完整的檔案瀏覽介 面了 •右圖範例就是結合這四個元件為 主的一個範例視窗元件綜合範例 II•其中最主要的動作, 就是設定這些元件的關聯性, 也就是我們必須要 在一開始時就指定好某先元件的屬性,如此這先元件的動作就會互相 影響,如下程式碼就是在FormCreate 方法裡加入的•由於FileListBox是這些元件裡最下層的, 所以只需要被指定即可FilterComboBox1-FileList = DirectoryListBox1-FileList; DirectoryListBox1-FileList = FileListBox1; DriveComboBox1-DirList = DirectoryListBox1;10-5 TabbedNotebook元件•在視窗作業系統中,大致上有兩種多 頁框標籤,一種是在Windows3.1下的 TabbedNotebook元件,另一種是從 Windows95以後開始提供的新操作介 面PageControl。
本節是要介紹 TabbedNotebook元件 TabbedNotebook使用說明• TabbedNotebook在開發程式時,是非常便利的,我們只需要建 立好一個TabbedNotebook元件到視窗的某個位置, 並且把之 後的元件拖曳到其可本章習題• 請仿照Windows檔案總管的功能,完成一個基本功能具備的 檔案管理程式 • 設計一個小型的備忘錄程式。