?? 006.htm
字號:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>—DELPHI基礎教程—第二章 Delphi面向對象的編程方法(一)</TITLE><META NAME="keywords" CONTENT=" DELPHI基礎教程 第二章 Delphi面向對象的編程方法(一)"><META NAME="description" CONTENT=" - DELPHI基礎教程 - 第二章 Delphi面向對象的編程方法(一)"><style><!--#page {position:absolute; z-index:0; left:0px; top:0px}.tt3 {font: 9pt/12pt "宋體"}.tt2 {font: 12pt/15pt "宋體"}a {text-decoration:none}a:hover {color: blue;text-decoration:underline}--></style></HEAD><body text="#000000" bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3"><TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0><TR><TD CLASS="tt3" VALIGN="top" width="8%" ><strong><A HREF="007.htm"><FONT style="FONT-SIZE: 9pt">后一頁</font></A><BR><A HREF="005.htm"><FONT style="FONT-SIZE: 9pt">前一頁</font></A><BR><A HREF="index.html"><FONT style="FONT-SIZE: 9pt">回目錄</font></A><BR></strong></TD><TD class="tt2" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="隸書">第二章 Delphi面向對象的編程方法(一)</FONT></B></center><hr width="94%"></font><p> Delphi<font face="宋體"lang="ZH-CN">的編程語言是以</font>Pascal<font face="宋體" lang="ZH-CN">為基礎的。</font>Pascal<fontface="宋體" lang="ZH-CN">語言具有可讀性好、編寫容易的特點,這使得它很適合作為基礎的開發語言。同時,使用編譯器創建的應用程序只生成單個可執行文件</font>(.EXE)<fontface="宋體" lang="ZH-CN">,正是這種結合,使得</font>Pascal<font face="宋體"lang="ZH-CN">成為</font>Delphi<font face="宋體" lang="ZH-CN">這種先進開發環境的編程語言。</font></p><p><font face="宋體" lang="ZH-CN"> 本章中,我們將討論</font>Object Pascal<fontface="宋體" lang="ZH-CN">的主要特點,并講解如何在事件處理過程和其他應用程序中,使用它來編制程序代碼。本章將講解</font>Delphi<fontface="宋體" lang="ZH-CN">應用程序中最常用的</font>Object Pascal<fontface="宋體" lang="ZH-CN">語法,而不是</font>Pascal<font face="宋體" lang="ZH-CN">語言的一切細節。如果您完全不熟悉</font>Pascal<fontface="宋體" lang="ZH-CN">編程,請參閱一些基礎的</font>Pascal<fontface="宋體" lang="ZH-CN">教程。如果您具有編程經驗,并能熟練地使用其他流行程序語言,您將在本章的</font>ObjectPascal<font face="宋體" lang="ZH-CN">中發現一些相同的概念。如果您已經熟悉了</font>BorlandPascal<font face="宋體" lang="ZH-CN">,就可以快速瀏覽或跳過本章。 </p></font><p>2.1 <font face="宋體" lang="ZH-CN">編寫</font>Object Pascal<fontface="宋體" lang="ZH-CN">程序代碼 </p></font><p><font face="宋體" lang="ZH-CN"> 在前邊的章節中,我們通過例程,已經編寫了幾行簡單的代碼。在本章中,我們將從熟悉</font>Pascal<fontface="宋體" lang="ZH-CN">編程的角度,配合實例,講解</font>Object Pascal<fontface="宋體" lang="ZH-CN">編程的基本方法。</font></p><p><font face="宋體" lang="ZH-CN"> 在編寫自己的</font>Object Pascal<fontface="宋體" lang="ZH-CN">程序時,要注意程序的可讀性。</font>Pascal<fontface="宋體" lang="ZH-CN">語言是英式結構語言,在程序中選擇合適的縮排、大小寫風格,并在需要時將程序代碼分行,會使得程序代碼能夠很容易地被自己和他人讀懂。一般的程序員都有這樣的體驗:如果不給程序加上適當的注解,一段時間后,自己也難以理清程序的流程。給程序及時地加上注釋是良好的編程習慣。</font>Delphi<fontface="宋體" lang="ZH-CN">的注釋需要加注在{}之間,編輯器會把它們處理成為空白。</font>Delphi<fontface="宋體" lang="ZH-CN">保留了</font>Borland Pascal<font face="宋體" lang="ZH-CN">編輯器的風格,關鍵字采用黑體字,被注釋的部分會變暗,這使得編程風格良好,易讀易寫。 </p></font><p>2.1.1 <font face="宋體" lang="ZH-CN">編寫賦值語句 </p></font><p><font face="宋體" lang="ZH-CN"> 在事件處理過程中,最常用到的工作就是把一個新值賦給一個屬性或變量。在設計用戶界面時,可以使用</font>ObjectInspector(Object Inspector)<font face="宋體" lang="ZH-CN">來改變其屬性;但有時需要在程序執行時改變屬性的值,而且有些屬性只能在執行時改變,這些屬性在</font>Delphi<fontface="宋體" lang="ZH-CN">的在線幫助的“</font>Proprety<font face="宋體"lang="ZH-CN">”主題中被標為執行期屬性。進行這種改變,就必須使用賦值語句。</font></p><p><font face="宋體" lang="ZH-CN"> 下文的賦值語句表征一個</font>OnClick<fontface="宋體" lang="ZH-CN">事件。當按鈕按動后,將編輯框部件</font>Edit1<fontface="宋體" lang="ZH-CN">的</font>Color<font face="宋體" lang="ZH-CN">屬性置為</font>clRed:</p><p>procedure TForm1.Button1Click(Sender: TObject);</p><p>begin</p><p>Edit1.Color := clRed;</p><p>end; </p><p><font face="宋體" lang="ZH-CN"> 當按動按鈕后賦值語句被執行,編輯框變成紅色。</font></p><p><font face="宋體" lang="ZH-CN"> 在語句中,部件的名稱在屬性前,中間用“</font>.<fontface="宋體" lang="ZH-CN">”表示屬性的所屬關系。這樣就準確地指定了要將</font>clRed<fontface="宋體" lang="ZH-CN">值賦給哪一部件的哪一屬性。賦值號為“</font>:=<fontface="宋體" lang="ZH-CN">”,不論給屬性還是給變量賦值,都是將右邊的值賦給左邊的屬性或變量。</font></p><p><font face="宋體" lang="ZH-CN"> 當將一個屬性值、變量、常量或文本數據賦給屬性或變量時,所賦值的類型和接受此值的屬性或變量的類型應相同或兼容。一個屬性或變量的類型定義了此屬性或變量的可能值集合,也定義了程序代碼可以執行的運算。在前邊的例程中,編輯框部件的</font>Color<fontface="宋體" lang="ZH-CN">屬性和</font>clRed<font face="宋體" lang="ZH-CN">的類型都是</font>TColor<fontface="宋體" lang="ZH-CN">。可以在在線幫助中找到一個屬性的類型;另外一種方法是在</font>ObjectInspector<font face="宋體" lang="ZH-CN">中選定該屬性值段,并按下</font>F1<fontface="宋體" lang="ZH-CN">鍵,則類型將在屬性說明的結尾處列出,例如</font>Color<fontface="宋體" lang="ZH-CN">屬性列出下邊的語句: </p></font><p>Property Color : TColor; </p><p><font face="宋體" lang="ZH-CN"> 有些屬性是只讀</font>(Read Only)<fontface="宋體" lang="ZH-CN">的,它們只能被讀取,不能被改變。請查閱在線幫助,在</font>Delphi<fontface="宋體" lang="ZH-CN">中這些只讀屬性都有注解。 </p></font><p>2.1.2 <font face="宋體" lang="ZH-CN">標識符的說明與使用 </p></font><p><font face="宋體" lang="ZH-CN"> 標識符是</font>Delphi<fontface="宋體" lang="ZH-CN">應用程序中一些量的名稱,這些量包括變量</font>(var)<fontface="宋體" lang="ZH-CN">、常量</font>(const)<font face="宋體" lang="ZH-CN">、類型</font>(type)<fontface="宋體" lang="ZH-CN">、過程</font>(procedure)<font face="宋體" lang="ZH-CN">、方法</font>(Method)<fontface="宋體" lang="ZH-CN">及其他,</font>Object Pascal <font face="宋體"lang="ZH-CN">在應用標識符時,必須首先說明它們。</font>Object Pascal<fontface="宋體" lang="ZH-CN">是強類型語言,它的編譯器可以檢查確保賦給變量或屬性的值是正確的類型,以便于您改正錯誤。因為</font>ObjectPascal<font face="宋體" lang="ZH-CN">是編譯語言,所以</font>Delphi<fontface="宋體" lang="ZH-CN">的執行速度要比使用解釋語言快得多。在使用標識符前說明它們,可以減少程序錯誤并增加代碼的效率。 </p></font><p>2.1.2.1 <font face="宋體" lang="ZH-CN">變量</font></p><p><font face="宋體" lang="ZH-CN"> 變量是程序代碼中代表一個內存地址的標識符,而此地址的內存內容在程序代碼執行時可以被改變。在使用變量前必須對它進行說明,即對它進行命名,并說明它的類型。在所有變量說明以前加上保留字</font>var<fontface="宋體" lang="ZH-CN">。變量說明左邊是變量的名稱,右邊則是該變量的類型,中間用</font>(:)<fontface="宋體" lang="ZH-CN">隔開。 </p></font><p>var</p><p>Value ,Sum : Integer;</p><p>Line : String; </p><p><font face="宋體" lang="ZH-CN"> 在窗體中加入一個名稱為</font>Edit1<fontface="宋體" lang="ZH-CN">的編輯框,再加入一個名稱</font>(<font face="宋體"lang="ZH-CN">屬性</font>Name)<font face="宋體" lang="ZH-CN">為</font>Add<fontface="宋體" lang="ZH-CN">的按鈕部件,并建立如下的事件處理過程:</font></p><p>procedure TForm1.addClick(Sender: TObject);</p><p>var</p><p>X , Y: Integer;</p><p>begin</p><p>X := 100;</p><p>Y := 20;</p><p>Edit1.Text := IntToStr(X + Y);</p><p>end; </p><p><font face="宋體" lang="ZH-CN"> 在本例中,當按動</font>ADD<fontface="宋體" lang="ZH-CN">按鈕時,編輯框中顯示值</font>120<font face="宋體"lang="ZH-CN">。在</font>Object Pascal<font face="宋體" lang="ZH-CN">中,必須確保變量或屬性被賦予類型相同或兼容的值。您可以嘗試將賦給</font>X<fontface="宋體" lang="ZH-CN">的值改為</font>100.0<font face="宋體" lang="ZH-CN">,或去掉</font>IntToStr<fontface="宋體" lang="ZH-CN">函數,在編譯時會出現類型不匹配的錯誤,這也說明了</font>ObjectPascal<font face="宋體" lang="ZH-CN">強類型語言的特點。 </p></font><p>2.1.2.2 <font face="宋體" lang="ZH-CN">預定義類型 </p></font><p> Object Pascal<font face="宋體"lang="ZH-CN">有多個預定義的數據類型,您可以說明任何這些類型的變量:</font></p><p><font face="宋體" lang="ZH-CN"> 整形:</font>Integer<fontface="宋體" lang="ZH-CN">的范圍是</font>-32768<font face="宋體" lang="ZH-CN">到</font>32767,<fontface="宋體" lang="ZH-CN">占</font>2<font face="宋體" lang="ZH-CN">字節的內存;</font>Shortint<fontface="宋體" lang="ZH-CN">從</font>-128<font face="宋體" lang="ZH-CN">到</font>127<fontface="宋體" lang="ZH-CN">,占</font>1<font face="宋體" lang="ZH-CN">字節內存;</font>Longint<fontface="宋體" lang="ZH-CN">從</font>-2147443648<font face="宋體" lang="ZH-CN">到</font>2147483647<font face="宋體" lang="ZH-CN">占</font>4<font face="宋體" lang="ZH-CN">字節內存;</font>Byte<fontface="宋體" lang="ZH-CN">從</font>0<font face="宋體" lang="ZH-CN">到</font>255<fontface="宋體" lang="ZH-CN">,占</font>1<font face="宋體" lang="ZH-CN">字節;</font>Word<fontface="宋體" lang="ZH-CN">從</font>0<font face="宋體" lang="ZH-CN">到</font>65535<fontface="宋體" lang="ZH-CN">,占</font>2<font face="宋體" lang="ZH-CN">字節內存。它們都是沒有小數部分的數字。</font></p><p><font face="宋體" lang="ZH-CN"> 實型:</font>Single<fontface="宋體" lang="ZH-CN">可以包含</font>7<font face="宋體" lang="ZH-CN">到</font>8<fontface="宋體" lang="ZH-CN">位有效小數部分,占用</font>4<font face="宋體"lang="ZH-CN">字節的內存;</font>Double<font face="宋體" lang="ZH-CN">類可以包含</font>15<fontface="宋體" lang="ZH-CN">到</font>16<font face="宋體" lang="ZH-CN">位有效小數部分,占用</font>8<fontface="宋體" lang="ZH-CN">字節的內存;</font>Extended<font face="宋體"lang="ZH-CN">類型包含</font>19<font face="宋體" lang="ZH-CN">到</font>20<fontface="宋體" lang="ZH-CN">位有效小數部分,占用</font>10<font face="宋體"lang="ZH-CN">字節內存;</font>Comp<font face="宋體" lang="ZH-CN">可以包含</font>19<fontface="宋體" lang="ZH-CN">到</font>20<font face="宋體" lang="ZH-CN">位有效小數部分,占用</font>8<fontface="宋體" lang="ZH-CN">字節內存。以上實數類型只有在</font>8087/80287<fontface="宋體" lang="ZH-CN">選項</font>[N+]<font face="宋體" lang="ZH-CN">打開才可以使用。</font>Real<fontface="宋體" lang="ZH-CN">可以包含</font>11<font face="宋體" lang="ZH-CN">到</font>12<fontface="宋體" lang="ZH-CN">位有效小數部分,占用</font>6<font face="宋體"lang="ZH-CN">字節內存。它只有在和以前</font>Borland Pascal<font face="宋體"lang="ZH-CN">兼容的情況下才使用,否則應使用</font>Double<font face="宋體"lang="ZH-CN">或</font>Extended<font face="宋體" lang="ZH-CN">。</font></p><p><font face="宋體" lang="ZH-CN"> 布爾型:</font>Boolean<fontface="宋體" lang="ZH-CN">,只包含</font>true<font face="宋體" lang="ZH-CN">或</font>False<fontface="宋體" lang="ZH-CN">兩個值,占用</font>1<font face="宋體" lang="ZH-CN">字節內存。</font></p><p><font face="宋體" lang="ZH-CN"> 字符型:</font>Char<fontface="宋體" lang="ZH-CN">,一個</font>ASCII<font face="宋體" lang="ZH-CN">字符;字符串類型</font>String<fontface="宋體" lang="ZH-CN">一串最長可達</font>255<font face="宋體" lang="ZH-CN">個</font>ASCII<fontface="宋體" lang="ZH-CN">字符。</font></p>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -