程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第二章-Delphi面向對象的編程方法(一)(1)

第二章-Delphi面向對象的編程方法(一)(1)

編輯:Delphi

Delphi的編程語言是以Pascal為基礎的。Pascal語言具有可讀性好、編寫容易的特點,這使得它很適合作為基礎的開發語言。同時,使用編譯器創建的應用程序只生成單個可執行文件(.EXE),正是這種結合,使得Pascal成為Delphi這種先進開發環境的編程語言。

本章中,我們將討論Object Pascal的主要特點,並講解如何在事件處理過程和其他應用程序中,使用它來編制程序代碼。本章將講解Delphi應用程序中最常用的Object Pascal語法,而不是Pascal語言的一切細節。如果您完全不熟悉Pascal編程,請參閱一些基礎的Pascal教程。如果您具有編程經驗,並能熟練地使用其他流行程序語言,您將在本章的Object Pascal中發現一些相同的概念。如果您已經熟悉了Borland Pascal,就可以快速浏覽或跳過本章。 

2.1 編寫Object Pascal程序代碼 

在前邊的章節中,我們通過例程,已經編寫了幾行簡單的代碼。在本章中,我們將從熟悉Pascal編程的角度,配合實例,講解Object Pascal編程的基本方法。

在編寫自己的Object Pascal程序時,要注意程序的可讀性。Pascal語言是英式結構語言,在程序中選擇合適的縮排、大小寫風格,並在需要時將程序代碼分行,會使得程序代碼能夠很容易地被自己和他人讀懂。一般的程序員都有這樣的體驗:如果不給程序加上適當的注解,一段時間後,自己也難以理清程序的流程。給程序及時地加上注釋是良好的編程習慣。Delphi的注釋需要加注在{}之間,編輯器會把它們處理成為空白。Delphi保留了Borland Pascal編輯器的風格,關鍵字采用黑體字,被注釋的部分會變暗,這使得編程風格良好,易讀易寫。 

2.1.1 編寫賦值語句 

在事件處理過程中,最常用到的工作就是把一個新值賦給一個屬性或變量。在設計用戶界面時,可以使用Object Inspector(Object Inspector)來改變其屬性;但有時需要在程序執行時改變屬性的值,而且有些屬性只能在執行時改變,這些屬性在Delphi的在線幫助的“Proprety”主題中被標為執行期屬性。進行這種改變,就必須使用賦值語句。

下文的賦值語句表征一個OnClick事件。當按鈕按動後,將編輯框部件Edit1的Color屬性置為clRed:

procedure TForm1.Button1Click(Sender: TObject);

begin

Edit1.Color := clRed;

end; 

當按動按鈕後賦值語句被執行,編輯框變成紅色。

在語句中,部件的名稱在屬性前,中間用“.”表示屬性的所屬關系。這樣就准確地指定了要將clRed值賦給哪一部件的哪一屬性。賦值號為“:=”,不論給屬性還是給變量賦值,都是將右邊的值賦給左邊的屬性或變量。

當將一個屬性值、變量、常量或文本數據賦給屬性或變量時,所賦值的類型和接受此值的屬性或變量的類型應相同或兼容。一個屬性或變量的類型定義了此屬性或變量的可能值集合,也定義了程序代碼可以執行的運算。在前邊的例程中,編輯框部件的Color屬性和clRed的類型都是TColor。可以在在線幫助中找到一個屬性的類型;另外一種方法是在Object Inspector中選定該屬性值段,並按下F1鍵,則類型將在屬性說明的結尾處列出,例如Color屬性列出下邊的語句: 

Property Color : TColor; 

有些屬性是只讀(Read Only)的,它們只能被讀取,不能被改變。請查閱在線幫助,在Delphi中這些只讀屬性都有注解。 

2.1.2 標識符的說明與使用 

標識符是Delphi應用程序中一些量的名稱,這些量包括變量(var)、常量(const)、類型(type)、過程(procedure)、方法(Method)及其他,Object Pascal 在應用標識符時,必須首先說明它們。Object Pascal是強類型語言,它的編譯器可以檢查確保賦給變量或屬性的值是正確的類型,以便於您改正錯誤。因為Object Pascal是編譯語言,所以Delphi的執行速度要比使用解釋語言快得多。在使用標識符前說明它們,可以減少程序錯誤並增加代碼的效率。 

2.1.2.1 變量

變量是程序代碼中代表一個內存地址的標識符,而此地址的內存內容在程序代碼執行時可以被改變。在使用變量前必須對它進行說明,即對它進行命名,並說明它的類型。在所有變量說明以前加上保留字var。變量說明左邊是變量的名稱,右邊則是該變量的類型,中間用(:)隔開。 

var

Value ,Sum : Integer;

Line : String; 

在窗體中加入一個名稱為Edit1的編輯框,再加入一個名稱(屬性Name)為Add的按鈕部件,並建立如下的事件處理過程:

procedure TForm1.addClick(Sender: TObject);

var

X , Y: Integer;

begin

X := 100;

Y := 20;

Edit1.Text := IntToStr(X + Y);

end; 

在本例中,當按動ADD按鈕時,編輯框中顯示值120。在Object Pascal中,必須確保變量或屬性被賦予類型相同或兼容的值。您可以嘗試將賦給X的值改為100.0,或去掉IntToStr函數,在編譯時會出現類型不匹配的錯誤,這也說明了Object Pascal強類型語言的特點。 

2.1.2.2 預定義類型 

Object Pascal有多個預定義的數據類型,您可以說明任何這些類型的變量:

整形:Integer的范圍是-32768到32767,占2字節的內存;Shortint從-128到127,占1字節內存;Longint從-2147443648到2147483647 占4字節內存;Byte從0到255,占1字節;Word從0到65535,占2字節內存。它們都是沒有小數部分的數字。

實型:Single可以包含7到8位有效小數部分,占用4字節的內存;Double類可以包含15到16位有效小數部分,占用8字節的內存;Extended類型包含19到20位有效小數部分,占用10字節內存;Comp可以包含19到20位有效小數部分,占用8字節內存。以上實數類型只有在8087/80287選項[N+]打開才可以使用。Real可以包含11到12位有效小數部分,占用6字節內存。它只有在和以前Borland Pascal兼容的情況下才使用,否則應使用Double或Extended。

布爾型:Boolean,只包含true或False兩個值,占用1字節內存。

字符型:Char,一個ASCII字符;字符串類型String一串最長可達255個ASCII字符。

指針型:Pointer,可以指向任何特定類型。

字符串型:PChar,是一個指向以零結尾的字符串的指針。

除了預定義類型外,Delphi還有自行定義的類型。上述例程的TColor就是這種類型。此外,用戶還可以定義自己的數據類型,這部分內容將在下文中詳細講述。

整型類別和實型類別都各有五種類型,同一類別中,所有的類型與其他同類別的都相容,您可以將一種類型的值賦給相同類別中不同類型的變量或屬性,而只需要這個值的范圍在被賦值的變量或屬性的可能值范圍內。例如,對於一個Shortint型的變量,可以接受在-128到127范圍內的任意整數,例如Shortint類型的7;您不能將300賦給它,因為300已經超出了Shortint的范圍了。將范圍檢查功能打開(選用Options|Project,並在Compiler Options Page中選擇Range Checking),將會檢查出一個范圍錯誤;如果Range Checking沒有被打開,那麼程序代碼將可以執行,但被賦值的值將不是您期望的值。

在一些情況下,您可以進行不同類型的變量或屬性的賦值。一般來說,可以將一個較小范圍的值賦給一個較大范圍的值。例如,您可以將整型值10賦給一個接受實型值的Double屬性而使得值成為10.0,但如果將一個Double類型的值賦給整形變量,則會出現類型錯誤。如果您不清楚類型的兼容性,可以參閱Delphi的在線幫助中“Type Compatibility and Assignment Compatibility”主題。 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved