- Delphi程序設計基礎:教程、實驗、習題
- 張世明編著
- 2251字
- 2019-01-01 06:21:29
1.6 Delphi程序設計過程
Delphi程序設計是可視化的,大多數開發的程序界面風格類似于其他各Windows應用程序。在開發過程中,基本上以一個項目文件管理一組窗體單元文件,而各個窗體根據功能需要,安排了不同的組件。運行時,這些組件與用戶交互,這些組件所要實現的功能由其背后的事件(程序代碼)實現。
在Delphi中創建應用程序的過程一般如下。
第1步:創建新的項目和窗體。
執行“File”→“New”→“Application”命令,創建新的項目和窗體。
第2步:在窗體中加入組件。
在組件板中選定需要的組件,然后在窗體的適當位置單擊。接著可以對窗體和窗體上的組件進行適當的安排。
第3步:設置窗體和組件的屬性。
根據程序需求在對象編輯器中設置組件的屬性,包括組件的大小、顏色、位置、標題文字、特征等。這些屬性也可以通過程序動態地設置和修改。
第4步:編寫事件處理程序。
在對象編輯器中選擇指定組件的事件項,進入代碼編輯窗口,編寫程序代碼,以實現相應功能。
第5步:保存項目文件和單元文件。
使用“File”菜單中的“Save All”命令,保存項目、單元等文件。
第6步:編譯、調試和運行程序。
使用“Run”菜單中的“Run”命令,運行應用程序。若出現問題或程序的運行結果達不到預期的結果,還可以使用Delphi提供的調試器來調試和修改,直到滿意為止。
【例1.1】 本例介紹如何在Delphi集成開發環境中編寫Windows應用程序。程序實現的功能是:在應用程序的窗體中顯示時鐘。
具體實現過程如下。
(1) 進入Delphi開發環境
可以通過Windows的“開始”菜單來運行Delphi,如單擊“開始”→“所有程序”→“Borland Delphi 7”→“Delphi 7”。
(2) 創建項目
為了集中管理各個文件,可以創建一個“項目”進行統一管理。
① 創建項目文件夾
為了單獨存放與項目有關的文件,先創建一個文件夾??梢酝ㄟ^Windows環境中的資源管理器來實現,如C:\Mypro。
② 創建一個新的項目
在Delphi集成開發環境中,單擊“File”→“New”→“Application”命令,創建一個新的應用程序,Delphi會自動創建項目文件及相關的其他文件。
③ 保存項目及相關文件
使用“File”菜單中的“Save All”命令將保存與項目有關的所有文件。此時首先會彈出“Save Unit1 As”對話框,定位到目錄“C:\Mypro”后,輸入文件名“Unit1_1”,單擊“確定”按鈕,接著會彈出“Save Project1 As”對話框。這時目錄自動定位到“C:\Mypro”中,輸入文件名“Project1_1”,單擊“確定”按鈕。
(3) 向窗體中添加組件
為了在Form1窗體中顯示文字,可以添加一個標簽(Label)組件。標簽組件是組件板的Standard組件頁中的第4個組件??梢詫⑹髽酥羔樢苿拥絊tandard組件頁中的第4個組件上,稍停一下后會出現一個內容顯示為“Label”的提示窗口;單擊鼠標左鍵,然后移動鼠標指針到Form1窗體中,再單擊左鍵,標簽組件就被添加到窗體中。
為了使每隔1秒鐘將顯示的內容改變一次,采用同樣的方法,向Form1窗體中添加一個定時器(Timer)組件。定時器組件是System組件頁中的第1個組件。
在程序運行的過程中,定時器組件并不在窗體中顯示,所以可以將定時器組件隨便放置在窗體中的某個位置。
為了可以關閉顯示,添加一個按鈕(Button)組件,按鈕組件在Standard組件頁中的第7個位置,采用同樣方法將其添加到窗體中。
(4) 設置組件屬性
在Form1窗體中選中標簽組件,然后在對象編輯器窗口中對標簽組件的主要屬性進行設置,具體如表1.2所示。
表1.2 例1.1中標簽組件的屬性設置

注意:改變字體屬性時,可以單擊組合框右面的“…”按鈕,在彈出的“字體”對話框中設置字體、大小和顏色等。也可以展開Font屬性,對子屬性進行設置。
設置好組件的屬性后,可以改變窗體的大?。簩⑹髽酥羔樢频酱绑w的邊緣,鼠標的形狀會變成雙箭頭模式,然后按下鼠標左鍵進行拖動就可以改變窗體的大小。
然后,再在Form1窗體中選中按鈕組件,在對象編輯器窗口中將按鈕的Caption屬性設置為“開/關”。
定制好的窗體如圖1.13(a)所示。
(5) 添加代碼
① 在Form1窗體中選中定時器組件,然后選中對象編輯器窗口中的事件(Events)頁,為定時器組件添加OnTimer事件的處理過程。只要雙擊OnTimer欄右邊的組合框,系統就會自動添加該事件的處理過程,并自動定位到相應的代碼處。
在TForm1.Timer1Timer處理過程中添加以下代碼。
procedure TForm1.Timer1Timer(Sender: TObject); var //變量說明 DateTime : TDateTime; str : string; begin DateTime := Time; //取得當前日期和時間 str := TimeToStr(DateTime); //轉換時間成字符串 Label1.Caption := str; //顯示時間字符 { 注意,這些語句也可直接用下列語句代替: label1.Caption := TimeToStr(Time); } end;
② 同樣,在Form1窗體中選中按鈕組件,然后選中對象編輯器窗口中的Events頁,為按鈕組件添加單擊(OnClick)事件的處理過程(即運行時,單擊按鈕所要運行的功能程序)。雙擊OnClick欄右邊的組合框,進入代碼編輯器,給按鈕組件添加單擊事件。
procedure TForm1.Button1Click(Sender: TObject); begin timer1.Enabled:=not timer1.Enabled; end;
(6) 運行程序
通過“Run”菜單的“Run”命令運行程序。如果程序沒有編譯和鏈接,則程序在運行前系統會自動進行編譯和鏈接。運行結果如圖1.13(b)所示。

圖1.13 顯示時鐘例程
說明:例1.1通過定時器每秒執行一次TForm1.Timer1Timer處理過程,在該處理過程中,通過“Label1.Caption:=str;”語句將組件Label1的Caption屬性改變了,也就是將窗體中顯示的內容每秒改變了一次。而按鈕的單擊事件是通過“Label1.Visible:=not Label1.Visible;”語句將Label1組件的Visible屬性在True和False之間切換,以達到開關目的。程序中“//”和“{}”符號代表注釋文本。
讀者可以自己嘗試進行以下工作。
① 改變窗體中顯示內容交替的頻率??梢酝ㄟ^設置定時器的Interval屬性來實現。
② 改變窗體標題欄的內容。如可以將Form1的Caption屬性由“Form1”改為“小鬧鈴”。
③ 改變窗體的大小、顯示內容、字體和顏色等。
④ 有興趣的讀者還可以讓程序在運行過程中發出聲音,這樣提示的效果會更明顯。可以在Tform1.Timer1Timer過程的末尾添加一條語句實現。
procedure Tform1.Ttimer1Timer(Sender:TObject); begin … Beep; //發聲 End;
⑤ 如果想改成準點報時發聲,可以把④中的語句加一判斷:
if MinuteOf(Time)=0 then Beep; //發聲
但由于該語句用到了MinuteOf()函數,所以必須在程序的uses引用說明中加入“DateUtils”單元文件名。
- Web前端開發技術:HTML、CSS、JavaScript(第3版)
- Ceph Cookbook
- Learning Data Mining with Python
- C語言最佳實踐
- Java Web應用開發技術與案例教程(第2版)
- Mastering ServiceNow(Second Edition)
- Learning Python Design Patterns
- C++新經典
- PyQt編程快速上手
- 物聯網系統架構設計與邊緣計算(原書第2版)
- 官方 Scratch 3.0 編程趣味卡:讓孩子們愛上編程(全彩)
- INSTANT Apache Hive Essentials How-to
- ASP.NET開發寶典
- Pandas 1.x Cookbook
- 計算機軟件項目實訓指導