官术网_书友最值得收藏!

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”單元文件名。

主站蜘蛛池模板: 通山县| 胶州市| 洛扎县| 江川县| 靖州| 迁安市| 洞头县| 新郑市| 广丰县| 龙岩市| 罗江县| 仙桃市| 张家口市| 平遥县| 岐山县| 大邑县| 武鸣县| 永和县| 大埔县| 揭西县| 庆元县| 鄂温| 民权县| 开原市| 南华县| 山阴县| 石狮市| 台中市| 图们市| 杭锦后旗| 大荔县| 广灵县| 枣庄市| 永康市| 恩平市| 广南县| 耿马| 沧州市| 阿巴嘎旗| 亳州市| 鄢陵县|