180 likes | 333 Views
第十四章 專 案. 14-1 專案的內容 14-2 多表單專案. 14-1 專案的內容. 當我們開啟一個新的應用程式 ( 按一下功能表的“ File”/“Application” , Delphi 稱此應用程式為“專案”,其內容是預設一個表單 (Form1) 及一個單元 (Unit1) 。. Form1. 一個專案可以同時存在許多表單 (Form) , Form1 是系統預設的第一個表單,也是系統預設執行的表單。其次,若點選表單快顯功能表的“ View as Text” ,將可得構成表單的屬性如下,但這些並非表單的全部屬性,有些屬性會因沒有變更而沒有列印。
E N D
第十四章 專 案 • 14-1專案的內容 • 14-2 多表單專案
14-1 專案的內容 • 當我們開啟一個新的應用程式(按一下功能表的“File”/“Application”,Delphi稱此應用程式為“專案”,其內容是預設一個表單(Form1)及一個單元(Unit1)。
Form1 • 一個專案可以同時存在許多表單(Form),Form1是系統預設的第一個表單,也是系統預設執行的表單。其次,若點選表單快顯功能表的“View as Text”,將可得構成表單的屬性如下,但這些並非表單的全部屬性,有些屬性會因沒有變更而沒有列印。 object Form1: TForm1 Left = 192 Top = 107 Width = 355 Height = 221 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 end
Unit1 • 每一個表單均會對應一個程式單元,系統預設的程式單元內容如下: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end.
Unit Unit是單元名稱的保留字,後面跟隨的文字Unit1即為此單元的名稱,每一個單元均含有四個區段(section),分別是interface、implementation、initialization 及finalization等4個區段,其中前面2個是必需的區段,後面2個則是選擇性的。 • interface interface區段包含3個子句,分別是uses、type及var等,其功能是宣告此單元所要使用的型態、常數、變數、程序、函式與程式庫 • uses uses保留字是將本單元所需要的函式與類別庫包含進來,系統已預設包含一些程式庫,如上所述。有些程式庫會因使用者加入某些元件而自動加入,例如當您新增一個Button元件時,系統會自動將StdCtrls 包含進來;有些程式庫則必須由使用者手動加入,例如欲使用Sign函式,則應手動加入Math函式庫。 • type 所有的型態宣告,皆放在type後面。 • var 所有變數的宣告,皆放在var後面,且其生命週期是整個專案,也就是同一專案的所有表單,皆可引用在var所宣告的變數。
const 所有常數的宣告,皆放在const後面,且其生命週期是整個專案,也就是同一專案的所有表單,皆可引用在const所宣告的變數。(附註:const是選擇性的保留字,必須自行鍵入) • implementation 這個單元主要是用來定義在interface所宣告的程序與函式的內容,也就是撰寫每一程序與函式的地方。此外,同一專案若包含多個表單,亦需在此區使用uses包含所需轉移表單,例如,以下程式片段表示單元將引用Unit2。 uses Unit2 此單元亦包含以下符號。 • {$R *.dfm} {$R *.dfm}是用來連結Form1物件的二進位表格,所以千萬不可自行刪除。 • end. end.是整個單元的結束,當然也不可自行刪除。 • 表單的存檔 當完成一個表單的存檔,硬碟將會自動出現兩個檔案,一個是副檔名為*.DFM的Delphi Form,如下圖左,它記載此表單所使用的元件;另一個是*.PAS的Delphi Source檔,如下圖右,是記載單元內的所有程式碼。
Project1 • 當開新專案時,Delphi預設的專案名稱即為 Prtoject1。以下程式片段,則為Project1的內容(按一下功能表的“Project”/“View Source”),Program 保留字後面的Project1,即為本專案名稱。
專案的存檔 • 完成專案的存檔,將會包含以下的檔案,其中Delphi Form與Delphi Source File是表單檔,請看上一單元。
Delphi Project *.DFM的檔案,正是專案檔的內容,這個檔案記載此專案所包含的表單及單元檔。 • CFG *.CFG的檔案,記載專案的結構(Configuration)。 • DOF *.DOF的檔案,記載專案的選項設定,例如編譯與連結的設定。讀者可用功能表的 “Project”/“Option”來改變一些專案選項設定。 • RES *.RES是關於資料檔的設定。
14-2 多表單專案 • 本章之前的專案均只含單一表單,但對一個大型的應用程式而言,單一表單並無法滿足應用程式的需求,所以任一大型專案均是由眾多表單與單元組合而成
表單的新增 • 當我們開新專案時,Form1物件即為系統預設的第一個表單,往後要新增表單的方式有兩種,分別是新增新的表單(功能表的 “File”/ “New”/ “Form”)與載入別專案已完成的表單(功能表的“Project”/“Add to Project”)。其次,若要載入已完成的表單應留意表單物件名稱的唯一性問題,也就是同一專案當然不允許兩個表單的名稱相同。 • 例如,專案裏已有Form1的表單物件,當然不能載入另一名稱為Form1的表單物件,所以載入前應先更改表單的預設名稱,以避免因表單物件名稱相同而無法載入。
啟始表單的設定 • 同一專案若由多個表單組合而成,到底專案執行時,要執行那一表單呢?答案是要由功能表的“Project”/“Options”設定啟始表單,請於Main Form點選啟始表單。
表單的連結 • 當我們要由A表單轉移至另一B表單時,應於A表單的implementation區的開頭鍵入欲使用的單元,如以下程式即是欲使用Unit2。 uses Unit2 ;
表單的轉移 • 表單的轉移,分別是使用Show顯示欲轉移的表單及使用Hide隱藏自已的表單,如下以敘述是顯示Form2並隱藏Form1。 Form2.Show ; Form1.Hide ;
變數的有效範圍 • 於interface 區域的var或const保留字所宣告的變數與常數,其有效範圍均達整個專案,也就是同一專案的任何表單皆可存取此區域的變數與常數。
表單的移除 • 表單的移除可由功能表的“Project”/“Remove from Project”或專案管理員(功能表的“View”/“Project Manager”)中刪除不要的表單。
範例 14-2a • 示範多表單專案。
習題 請設計一個簡報,要求如下: • 1 題目自訂。 • 2 至少包含6個表單。 • 3 至少包含20個元件。 • 4 至少使用5種不同的事件。