18
第第第第 第 第 14-1 第第第第第 14-2 第第第第第

第十四章 專 案

  • Upload
    lelia

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

第十四章 專 案. 14-1 專案的內容 14-2 多表單專案. 14-1 專案的內容. 當我們開啟一個新的應用程式 ( 按一下功能表的“ File”/“Application” , Delphi 稱此應用程式為“專案”,其內容是預設一個表單 (Form1) 及一個單元 (Unit1) 。. Form1. 一個專案可以同時存在許多表單 (Form) , Form1 是系統預設的第一個表單,也是系統預設執行的表單。其次,若點選表單快顯功能表的“ View as Text” ,將可得構成表單的屬性如下,但這些並非表單的全部屬性,有些屬性會因沒有變更而沒有列印。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第十四章  專 案

第十四章 專 案 14-1 專案的內容 14-2 多表單專案

Page 2: 第十四章  專 案

14-1 專案的內容 當我們開啟一個新的應用程式 ( 按一下

功能表的“ File”/“Application” , Delphi稱此應用程式為“專案”,其內容是預設一個表單 (Form1) 及一個單元 (Unit1) 。

Page 3: 第十四章  專 案

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 = 13end

Page 4: 第十四章  專 案

Unit1 每一個表單均會對應一個程式單元,系統預設的程式單元內容如下:

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dial

ogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm}end.

Page 5: 第十四章  專 案

UnitUnit 是單元名稱的保留字,後面跟隨的文字 Unit1 即為此單元的名稱,每一個單元均含有四個區段 (section) ,分別是 interface 、 implementation 、 initialization 及 finalization 等 4 個區段,其中前面 2 個是必需的區段,後面 2 個則是選擇性的。

interfaceinterface 區段包含 3 個子句,分別是 uses 、 type 及 var 等,其功能是宣告此單元所要使用的型態、常數、變數、程序、函式與程式庫

usesuses 保留字是將本單元所需要的函式與類別庫包含進來,系統已預設包含一些程式庫,如上所述。有些程式庫會因使用者加入某些元件而自動加入,例如當您新增一個 Button 元件時,系統會自動將 StdCtrls 包含進來;有些程式庫則必須由使用者手動加入,例如欲使用 Sign 函式,則應手動加入 Math 函式庫。

type所有的型態宣告,皆放在 type 後面。

var所有變數的宣告,皆放在 var 後面,且其生命週期是整個專案,也就是同一專案的所有表單,皆可引用在 var 所宣告的變數。

Page 6: 第十四章  專 案

const 所有常數的宣告,皆放在 const 後面,且其生命週期是整個專案,也就是同一專案的所有表單,皆可引用在 const 所宣告的變數。( 附註 :const 是選擇性的保留字,必須自行鍵入 )

implementation這個單元主要是用來定義在 interface 所宣告的程序與函式的內容,也就是撰寫每一程序與函式的地方。此外,同一專案若包含多個表單,亦需在此區使用 uses 包含所需轉移表單,例如,以下程式片段表示單元將引用 Unit2 。

uses Unit2此單元亦包含以下符號。

{$R *.dfm}{$R *.dfm} 是用來連結 Form1 物件的二進位表格,所以千萬不可自行刪除。

end.end. 是整個單元的結束,當然也不可自行刪除。

表單的存檔當完成一個表單的存檔,硬碟將會自動出現兩個檔案,一個是副檔名為 *.DFM 的 Delphi Form ,如下圖左,它記載此表單所使用的元件;另一個是 *.PAS 的 Delphi Source 檔,如下圖右,是記載單元內的所有程式碼。

Page 7: 第十四章  專 案

Project1 當開新專案時, Delphi 預設的專案名稱

即為 Prtoject1 。以下程式片段,則為 Project1 的內容(按一下功能表的“ Project”/“View Source” ), Program 保留字後面的 Project1 ,即為本專案名稱。

Page 8: 第十四章  專 案

專案的存檔 完成專案的存檔,將會包含以下的檔案,

其中 Delphi Form 與 Delphi Source File是表單檔,請看上一單元。

Page 9: 第十四章  專 案

Delphi Project *.DFM 的檔案,正是專案檔的內容,這個檔案記載此專案所包含的表單及單元檔。

CFG *.CFG 的檔案,記載專案的結構 (Configuration) 。

DOF*.DOF 的檔案,記載專案的選項設定,例如編譯與連結的設定。讀者可用功能表的 “ Project”/“Option” 來改變一些專案選項設定。

RES*.RES 是關於資料檔的設定。

Page 10: 第十四章  專 案

14-2 多表單專案 本章之前的專案均只含單一表單,但對

一個大型的應用程式而言,單一表單並無法滿足應用程式的需求,所以任一大型專案均是由眾多表單與單元組合而成

Page 11: 第十四章  專 案

表單的新增 當我們開新專案時, Form1 物件即為系統預設的第一

個表單,往後要新增表單的方式有兩種,分別是新增新的表單(功能表的 “ File”/ “New”/ “Form” )與載入別專案已完成的表單(功能表的“ Project”/“Add to Project” )。其次,若要載入已完成的表單應留意表單物件名稱的唯一性問題,也就是同一專案當然不允許兩個表單的名稱相同。

例如,專案裏已有 Form1 的表單物件,當然不能載入另一名稱為 Form1 的表單物件,所以載入前應先更改表單的預設名稱,以避免因表單物件名稱相同而無法載入。

Page 12: 第十四章  專 案

啟始表單的設定 同一專案若由多個表單組合而成,到底

專案執行時,要執行那一表單呢 ? 答案是要由功能表的“ Project”/“Options” 設定啟始表單,請於 Main Form 點選啟始表單。

Page 13: 第十四章  專 案

表單的連結 當我們要由 A 表單轉移至另一 B 表單時,

應於 A 表單的 implementation 區的開頭鍵入欲使用的單元,如以下程式即是欲使用 Unit2 。

uses Unit2 ;

Page 14: 第十四章  專 案

表單的轉移 表單的轉移,分別是使用 Show 顯示欲

轉移的表單及使用 Hide 隱藏自已的表單,如下以敘述是顯示 Form2 並隱藏 Form1 。

Form2.Show ;

Form1.Hide ;

Page 15: 第十四章  專 案

變數的有效範圍 於 interface 區域的 var或 const 保留字

所宣告的變數與常數,其有效範圍均達整個專案,也就是同一專案的任何表單皆可存取此區域的變數與常數。

Page 16: 第十四章  專 案

表單的移除 表單的移除可由功能表的“ Project”/“Re

move from Project”或專案管理員(功能表的“ View”/“Project Manager” )中刪除不要的表單。

Page 17: 第十四章  專 案

範例 14-2a 示範多表單專案。

Page 18: 第十四章  專 案

習題請設計一個簡報,要求如下:

1 題目自訂。 2 至少包含 6 個表單。 3 至少包含 20 個元件。 4 至少使用 5 種不同的事件。