?? 006.htm
字號:
<p><font face="宋體" lang="ZH-CN"> 字符串型:</font>PChar<font
face="宋體" lang="ZH-CN">,是一個指向以零結尾的字符串的指針。</font></p>
<p><font face="宋體" lang="ZH-CN">
除了預定義類型外,</font>Delphi<font
face="宋體" lang="ZH-CN">還有自行定義的類型。上述例程的</font>TColor<font
face="宋體" lang="ZH-CN">就是這種類型。此外,用戶還可以定義自己的數據類型,這部分內容將在下文中詳細講述。</font></p>
<p><font face="宋體" lang="ZH-CN">
整型類別和實型類別都各有五種類型,同一類別中,所有的類型與其他同類別的都相容,您可以將一種類型的值賦給相同類別中不同類型的變量或屬性,而只需要這個值的范圍在被賦值的變量或屬性的可能值范圍內。例如,對于一個</font>Shortint<font
face="宋體" lang="ZH-CN">型的變量,可以接受在</font>-128<font face="宋體"
lang="ZH-CN">到</font>127<font face="宋體" lang="ZH-CN">范圍內的任意整數,例如</font>Shortint<font
face="宋體" lang="ZH-CN">類型的</font>7<font face="宋體" lang="ZH-CN">;您不能將</font>300<font
face="宋體" lang="ZH-CN">賦給它,因為</font>300<font face="宋體" lang="ZH-CN">已經超出了</font>Shortint<font
face="宋體" lang="ZH-CN">的范圍了。將范圍檢查功能打開</font>(<font
face="宋體" lang="ZH-CN">選用</font>Options|Project<font face="宋體" lang="ZH-CN">,并在</font>Compiler
Options Page<font face="宋體" lang="ZH-CN">中選擇</font>Range Checking)<font
face="宋體" lang="ZH-CN">,將會檢查出一個范圍錯誤;如果</font>Range
Checking<font face="宋體" lang="ZH-CN">沒有被打開,那么程序代碼將可以執行,但被賦值的值將不是您期望的值。</font></p>
<p><font face="宋體" lang="ZH-CN">
在一些情況下,您可以進行不同類型的變量或屬性的賦值。一般來說,可以將一個較小范圍的值賦給一個較大范圍的值。例如,您可以將整型值</font>10<font
face="宋體" lang="ZH-CN">賦給一個接受實型值的</font>Double<font face="宋體"
lang="ZH-CN">屬性而使得值成為</font>10.0<font face="宋體" lang="ZH-CN">,但如果將一個</font>Double<font
face="宋體" lang="ZH-CN">類型的值賦給整形變量,則會出現類型錯誤。如果您不清楚類型的兼容性,可以參閱</font>Delphi<font
face="宋體" lang="ZH-CN">的在線幫助中“</font>Type Compatibility and Assignment
Compatibility<font face="宋體" lang="ZH-CN">”主題。 </p>
</font><p>2.1.2.3 <font face="宋體" lang="ZH-CN">常量 </p>
</font><p><font face="宋體" lang="ZH-CN">
常量在說明時就被賦予了一個值,在程序執行過程中是不可改變的。下面的例子說明了三個常量: </p>
</font><p>const</p>
<p>Pi = 3.14159;</p>
<p>Answer = 342;</p>
<p>ProductName = "Delphi"; </p>
<p><font face="宋體" lang="ZH-CN">
象變量一樣,常量也有類型。不同的是,常量假設其類型就是常量說明中其所代表的值的類型。上文的三個常量的類型分別是</font>real<font
face="宋體" lang="ZH-CN">型、整形、字符串型。常量用“</font>= " <font
face="宋體" lang="ZH-CN">表示兩邊的值是相等的。 </p>
</font><p>2.1.3 <font face="宋體" lang="ZH-CN">過程與函數 </p>
</font><p><font face="宋體" lang="ZH-CN">
過程與函數是程序中執行特定工作的模塊化部分。</font>Delphi<font
face="宋體" lang="ZH-CN">的運行庫包含許多過程與函數以供您的應用程序調用。您不必了解過程與函數的邏輯,但要知道過程與函數的用途。在對象中說明的過程和函數稱為方法</font>(Method)<font
face="宋體" lang="ZH-CN">。所有的事件處理過程都是過程,以保留字</font>procedure<font
face="宋體" lang="ZH-CN">開頭。每一個事件處理過程只包含了當這一事件發生時需要執行的程序代碼。在事件處理過程中使用</font>Delphi<font
face="宋體" lang="ZH-CN">已經存在的過程與函數,只需在程序代碼中調用它們即可。 </p>
</font><p>2.1.3.1 <font face="宋體" lang="ZH-CN">一個調用</font>Delphi<font
face="宋體" lang="ZH-CN">方法的簡單例程 </p>
</font><p><font face="宋體" lang="ZH-CN">
下文將通過對一個</font>Memo<font face="宋體"
lang="ZH-CN">部件的文本進行剪切、拷貝、粘貼、清除等編輯的應用程序編制,介紹使用</font>Delphi<font
face="宋體" lang="ZH-CN">過程和函數的調用方法。</font></p>
<p> Memo(<font face="宋體" lang="ZH-CN">備注</font>)<font
face="宋體" lang="ZH-CN">部件有一個</font>CutToClipboard<font face="宋體"
lang="ZH-CN">方法,實現將用戶在</font>memo<font face="宋體" lang="ZH-CN">中選擇的文本移到剪貼板上去。由于這個功能已經被建立在此方法中了,所以您只需知道這個方法做什么以及如何使用它即可。</font></p>
<p><font face="宋體" lang="ZH-CN">
下面的語句表明如何調用一個名為</font>Memo1<font
face="宋體" lang="ZH-CN">的</font>memo<font face="宋體" lang="ZH-CN">部件的</font>CutToClipboard<font
face="宋體" lang="ZH-CN">方法: </p>
</font><p> Memo1.CutToClipboard; </p>
<p><font face="宋體" lang="ZH-CN"> 通過指定</font>Memo1<font
face="宋體" lang="ZH-CN">的名稱,說明調用哪一個部件的</font>CutToClipboard<font
face="宋體" lang="ZH-CN">方法。如果不指明對象名稱,</font>Delphi<font
face="宋體" lang="ZH-CN">會顯示</font>Unknown identifier<font face="宋體"
lang="ZH-CN">錯誤。當該事件處理過程被觸發,程序會執行</font>CutToclipboard<font
face="宋體" lang="ZH-CN">中的語句,將</font>Memo1<font face="宋體" lang="ZH-CN">中的文本剪貼到剪貼板上去。</font></p>
<p><font face="宋體" lang="ZH-CN">
下文的例程展示了如何調用</font>Delphi<font
face="宋體" lang="ZH-CN">的方法,實現將備注部件的文本信息剪切、拷貝到剪貼板上;將剪貼板上的標記文本粘貼到備注中,清除備注部件中的全部文本等四個功能。</font></p>
<p><font face="宋體" lang="ZH-CN">
打開一個新的空窗體,加入一個</font>memo<font
face="宋體" lang="ZH-CN">部件和四個按鈕,并排列整齊。改變按鈕部件的</font>Name<font
face="宋體" lang="ZH-CN">屬性,分別命名為</font>Cut,Copy,Paste,Clear<font
face="宋體" lang="ZH-CN">。您會發現,當</font>Name<font face="宋體"
lang="ZH-CN">屬性發生改變時,</font>Caption<font face="宋體" lang="ZH-CN">屬性將發生相應的變化。在</font>Caption<font
face="宋體" lang="ZH-CN">屬性前加標“</font>&<font face="宋體" lang="ZH-CN">”號設立加速鍵</font></p>
<p><font face="宋體" lang="ZH-CN"> 將</font>memo<font
face="宋體" lang="ZH-CN">部件的</font>ScrollBars<font face="宋體" lang="ZH-CN">屬性設為</font>ScVertical<font
face="宋體" lang="ZH-CN">,以便加上滾行條。將</font>WordWrap<font
face="宋體" lang="ZH-CN">屬性設置為</font>True<font face="宋體" lang="ZH-CN">,這樣當用戶輸入文本到達</font>Memo<font
face="宋體" lang="ZH-CN">部件的右邊緣時會自動回行。將</font>Line<font
face="宋體" lang="ZH-CN">屬性第一行的</font>Memo1<font face="宋體" lang="ZH-CN">文本刪除,使得</font>memo<font
face="宋體" lang="ZH-CN">部件在初始顯示時為空的。</font></p>
<p><font face="宋體" lang="ZH-CN">為每一個按鈕建立如下的事件處理過程: </p>
</font><p>procedure TForm1.CutClick(Sender: TObject)<font face="宋體" lang="ZH-CN">;</font></p>
<p>begin</p>
<p>Memo1.CutToClipboard;</p>
<p>end; </p>
<p>procedure TForm1.CopyClick(Sender: TObject);</p>
<p>begin</p>
<p>Memo1.CopyToClipboard;</p>
<p>end; </p>
<p>procedure TForm1.PasteClick(Sender: TObject);</p>
<p>begin</p>
<p>Memo1.PasteFromClipboard;</p>
<p>end; </p>
<p>procedure TForm1.ClearClick(Sender: TObject);</p>
<p>begin</p>
<p>Memo1.clear;</p>
<p>end; </p>
<p><font face="宋體" lang="ZH-CN">
執行此程序。您可以在備注部件中輸入文本,在進行了文本的標記后,可以任意地進行剪切、拷貝、粘貼和清除。當按鈕被按動時,就調用相應的過程進行處理。用戶可以通過查閱在線幫助進行</font>Memo<font
face="宋體" lang="ZH-CN">部件的</font>Topic Search<font face="宋體" lang="ZH-CN">,在</font>Memo
Component<font face="宋體" lang="ZH-CN">項中查閱</font>Method<font face="宋體"
lang="ZH-CN">,會得到以上過程的詳細說明。 </p>
</font><p>2.1.3.2 <font face="宋體" lang="ZH-CN">調用</font>Delphi<font face="宋體"
lang="ZH-CN">的含參過程 </p>
</font><p><font face="宋體" lang="ZH-CN">
有些過程要求用戶指明參數。被調用的過程會在執行時使用傳入的參數值,這些值在過程中被認為是已經被說明的變量。例如,</font>LoadFromFile<font
face="宋體" lang="ZH-CN">方法在</font>TString<font face="宋體" lang="ZH-CN">對象中被說明為: </p>
</font><p>Procedure LoadFromFile(const FileName: String)<font face="宋體" lang="ZH-CN">; </p>
</font><p><font face="宋體" lang="ZH-CN">
在調用這一過程時,應指明</font>FileName<font
face="宋體" lang="ZH-CN">參數是要裝入的文件名稱。下面的程序將先打開</font>Open<font
face="宋體" lang="ZH-CN">對話框,當您選擇了一個文件后,</font>Delphi<font
face="宋體" lang="ZH-CN">將把該文件讀入一個</font>Memo<font face="宋體"
lang="ZH-CN">部件: </p>
</font><p>begin</p>
<p>OpenDialog.Execute;</p>
<p>Memo1.lines.LoadFromFile(OpenDialog.FileName);</p>
<p>end; </p>
<p>2.1.3.3 <font face="宋體" lang="ZH-CN">使用</font>Delphi<font face="宋體"
lang="ZH-CN">函數 </p>
</font><p><font face="宋體" lang="ZH-CN">
與過程一樣,函數的程序代碼也執行特定的工作。它和過程的差別為:函數執行時會返回一個值,而過程則沒有返回值。函數可以用來賦給一個屬性或變量;也可以使用返回值來決定程序的流程。</font></p>
<p><font face="宋體" lang="ZH-CN">
前文中我們實際上已經接觸過了函數。在講述變量時,曾用到過下面的程序段:</font>
Edit1.Text := IntToStr(X + Y)<font face="宋體" lang="ZH-CN">;其中,</font>IntToStr(Value)<font
face="宋體" lang="ZH-CN">把一個</font>LongInt<font face="宋體" lang="ZH-CN">類型的數值轉化為字符串的值,</font>Value<font
face="宋體" lang="ZH-CN">是</font>IntToStr<font face="宋體" lang="ZH-CN">唯一的參數,它可以是一個整形的值、變量、屬性或產生整形值的表達式。調用函數,必須把返回值賦給和此返回值類型兼容的變量或屬性。</font></p>
<p><font face="宋體" lang="ZH-CN">
有些函數返回一個</font>True<font
face="宋體" lang="ZH-CN">或</font>False<font face="宋體" lang="ZH-CN">的布爾量,用戶的程序可以根據返回值來決定跳轉。下文的例程講述了函數返回值為</font>Boolean<font
face="宋體" lang="ZH-CN">的判斷用法:</font></p>
<p><font face="宋體" lang="ZH-CN">
在窗體中加入一個</font>ColorDialog<font
face="宋體" lang="ZH-CN">對象和一個</font>Name<font face="宋體" lang="ZH-CN">屬性為</font>ChangeColor<font
face="宋體" lang="ZH-CN">的按鈕。為按鈕的</font>OnClick<font face="宋體"
lang="ZH-CN">事件建立事件處理過程如下: </p>
</font><p>procedure TForm1.ChangeColorClick(Sender: TObject);</p>
<p>begin</p>
<p>if ColorDialog1.Execute then</p>
<p>Form1.Color := ColorDialog1.Color</p>
<p>else</p>
<p>Form1.Color := clRed;</p>
<p>end; </p>
<p><font face="宋體" lang="ZH-CN">
此事件處理過程使用一個返回</font>Boolean<font
face="宋體" lang="ZH-CN">值的</font>Execute<font face="宋體" lang="ZH-CN">方法。按動按鈕,并在顏色對話框中選擇一個顏色。如果按動</font>OK<font
face="宋體" lang="ZH-CN">按鈕,</font>ColorDialog.Execute<font face="宋體"
lang="ZH-CN">方法將返回</font>True<font face="宋體" lang="ZH-CN">,則</font>Form1.Color<font
face="宋體" lang="ZH-CN">將被賦值為</font>ColorDialog1.Color<font face="宋體"
lang="ZH-CN">,窗體顯現您選用的顏色;如果按動顏色對話框的</font>Cancel<font
face="宋體" lang="ZH-CN">按鈕,方法將返回</font>False<font face="宋體"
lang="ZH-CN">值,窗體將變為紅色。</font></p>
<hr color="#EE9B73" size="1" width="94%">
</TD>
<TD CLASS="tt3" VALIGN="bottom" width="8%" background="bg.gif"><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>
<A HREF="../../../../../index.htm"><FONT style="FONT-SIZE: 9pt">回首頁</font></A><BR>
</strong>
</TD>
</TR>
</table>
</BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -