?? 007.htm
字號:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI基礎(chǔ)教程-->第二章 Delphi面向?qū)ο蟮木幊谭椒ǎǘ?lt;/TITLE>
<META NAME="keywords" CONTENT=" DELPHI基礎(chǔ)教程 第二章 Delphi面向?qū)ο蟮木幊谭椒ǎǘ?quot;>
<META NAME="description" CONTENT=" - DELPHI基礎(chǔ)教程 - 第二章 Delphi面向?qū)ο蟮木幊谭椒ǎǘ?quot;>
<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" aLink=#9900ff link=#006699 vLink=#006699 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%" bgcolor="#e0e0e0"><strong><A HREF="008.htm"><FONT style="FONT-SIZE: 9pt">后一頁</font></A><BR>
<A HREF="006.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>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷體_GB2312">第二章 Delphi面向?qū)ο蟮木幊谭椒ǎǘ?lt;/FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<p>2.1.4 <font face="宋體" lang="ZH-CN">跳轉(zhuǎn)語句 </p>
</font><p>Object Pascal<font face="宋體" lang="ZH-CN">的跳轉(zhuǎn)語句有</font>if<font
face="宋體" lang="ZH-CN">和</font>case<font face="宋體" lang="ZH-CN">兩個。 </p>
</font><p>2.1.4.1 if<font face="宋體" lang="ZH-CN">語句 </p>
</font><p> if<font face="宋體" lang="ZH-CN">語句會計算一個表達式,并根據(jù)計算結(jié)果決定程序流程。在上文的例程中,根據(jù)</font>ColorDialog.Execute<font
face="宋體" lang="ZH-CN">的返回值,決定窗體的背景顏色。</font>if<font
face="宋體" lang="ZH-CN">保留字后跟隨一個生成</font>Boolean<font face="宋體"
lang="ZH-CN">值</font>True<font face="宋體" lang="ZH-CN">或</font>False<font
face="宋體" lang="ZH-CN">的表達式。一般用“</font>=<font face="宋體"
lang="ZH-CN">”作為關(guān)系運算符,比較產(chǎn)生一個布爾型值。當表達式為</font>True<font
face="宋體" lang="ZH-CN">時,執(zhí)行</font>then<font face="宋體" lang="ZH-CN">后的語句。否則執(zhí)行</font>else<font
face="宋體" lang="ZH-CN">后的代碼,</font>if<font face="宋體" lang="ZH-CN">語句也可以不含</font>else<font
face="宋體" lang="ZH-CN">部分,表達式為</font>False<font face="宋體"
lang="ZH-CN">時自動跳到下一行程序。</font></p>
<p> if<font face="宋體" lang="ZH-CN">語句可以嵌套,當使用復合語句表達時,復合語句前后需加上</font>begin<font
face="宋體" lang="ZH-CN">…</font>end<font face="宋體" lang="ZH-CN">。</font>else<font
face="宋體" lang="ZH-CN">保留字前不能加“;”,而且,編譯器會將</font>else<font
face="宋體" lang="ZH-CN">語句視為屬于最靠近的</font>if<font face="宋體"
lang="ZH-CN">語句。必要時,須使用</font>begin<font face="宋體" lang="ZH-CN">…</font>end<font
face="宋體" lang="ZH-CN">保留字來強迫</font>else<font face="宋體" lang="ZH-CN">部分屬于某一級的</font>if<font
face="宋體" lang="ZH-CN">語句。 </p>
</font><p>2.1.4.2 case<font face="宋體" lang="ZH-CN">語句 </p>
</font><p> case<font face="宋體"
lang="ZH-CN">語句適用于被判斷的變量或?qū)傩允钦巍⒆址汀⒚杜e型或子界型時</font>(LongInt<font
face="宋體" lang="ZH-CN">除外</font>)<font face="宋體" lang="ZH-CN">。用</font>case<font
face="宋體" lang="ZH-CN">語句進行邏輯跳轉(zhuǎn)比編寫復雜的</font>if<font
face="宋體" lang="ZH-CN">語句容易閱讀,而且程序代碼整形較快。</font></p>
<p><font face="宋體" lang="ZH-CN">下面的例程顯示一個使用</font>case<font
face="宋體" lang="ZH-CN">語句的窗體:</font></p>
<p><font face="宋體" lang="ZH-CN">建立如下的事件處理過程: </p>
</font><p>procedure TForm1.Button1Click(Sender: TObject);</p>
<p>var</p>
<p>Number : Integer;</p>
<p>begin</p>
<p>Number := StrToInt(Edit1.Text);</p>
<p>case Number of</p>
<p>1,3,5,7,9: Label2.Caption := '<font face="宋體" lang="ZH-CN">奇數(shù)</font>';</p>
<p>0,2,4,6,8: Label2.Caption := '<font face="宋體" lang="ZH-CN">偶數(shù)</font>';</p>
<p>10..100: </p>
<p>begin </p>
<p>Label2.Caption := '<font face="宋體" lang="ZH-CN">在</font>10<font face="宋體"
lang="ZH-CN">到</font>100<font face="宋體" lang="ZH-CN">之間</font>';</p>
<p>Form1.Color := clBlue;</p>
<p>end;</p>
<p>else</p>
<p>Label2.Caption := '<font face="宋體" lang="ZH-CN">大于</font>100<font face="宋體"
lang="ZH-CN">或為負數(shù)</font>';</p>
<p>end; </p>
<p>end; </p>
<p><font face="宋體" lang="ZH-CN">
執(zhí)行程序,當</font>Edit1<font
face="宋體" lang="ZH-CN">部件接受到一個值,并按動“</font>OK<font
face="宋體" lang="ZH-CN">”按鈕觸發(fā)程序后,</font>Number<font face="宋體"
lang="ZH-CN">便被賦值為用戶輸入的數(shù)值。</font>case<font face="宋體"
lang="ZH-CN">語句根據(jù)</font>Number<font face="宋體" lang="ZH-CN">的值判斷該執(zhí)行哪一條語句。象</font>if<font
face="宋體" lang="ZH-CN">語句一樣。</font>case<font face="宋體" lang="ZH-CN">語句也有可選擇的</font>else<font
face="宋體" lang="ZH-CN">部分。</font>case<font face="宋體" lang="ZH-CN">語句以</font>end<font
face="宋體" lang="ZH-CN">結(jié)尾。 </p>
</font><p>2.1.5 <font face="宋體" lang="ZH-CN">循環(huán)語句 </p>
</font><p> Object Pascal<font face="宋體"
lang="ZH-CN">的循環(huán)語句有三種:</font>repeat<font face="宋體" lang="ZH-CN">、</font>while<font
face="宋體" lang="ZH-CN">和</font>for<font face="宋體" lang="ZH-CN">語句。 </p>
</font><p>2.1.5.1 repeat<font face="宋體" lang="ZH-CN">語句 </p>
</font><p> repeat<font face="宋體"
lang="ZH-CN">語句會重復執(zhí)行一行或一段語句直到某一狀態(tài)為真。語句以</font>repeat<font
face="宋體" lang="ZH-CN">開始,以</font>until<font face="宋體" lang="ZH-CN">結(jié)束,其后跟隨被判斷的布爾表達式。參閱以下的例程: </p>
</font><p>i := 0;</p>
<p>repeat</p>
<p>i := i+1;</p>
<p>Writen(i);</p>
<p>until i=10; </p>
<p><font face="宋體" lang="ZH-CN">
當此語句被執(zhí)行時,窗體的下方會出現(xiàn)</font>1<font
face="宋體" lang="ZH-CN">到</font>10<font face="宋體" lang="ZH-CN">的數(shù)字。布爾表達式</font>
i=10 (<font face="宋體" lang="ZH-CN">注意,與其他語言不同的是,“</font>=<font
face="宋體" lang="ZH-CN">”是關(guān)系運算符,而不能進行賦值操作</font>)<font
face="宋體" lang="ZH-CN">直到</font>repeat..until<font face="宋體" lang="ZH-CN">程序段的結(jié)尾才會被計算,這意味著</font>repeat<font
face="宋體" lang="ZH-CN">語句至少會被執(zhí)行一次。 </p>
</font><p>2.1.5.2 while<font face="宋體" lang="ZH-CN">語句 </p>
</font><p> while<font face="宋體"
lang="ZH-CN">語句和</font>repeat<font face="宋體" lang="ZH-CN">語句的不同之處是,它的布爾表達式在循環(huán)的開頭進行判斷。</font>while<font
face="宋體" lang="ZH-CN">保留字后面必須跟一個布爾表達式。如果該表達式的結(jié)果為真,循環(huán)被執(zhí)行,否則會退出循環(huán),執(zhí)行</font>while<font
face="宋體" lang="ZH-CN">語句后面的程序。</font></p>
<p><font face="宋體" lang="ZH-CN">
下面的例程達到和上面的</font>repeat<font
face="宋體" lang="ZH-CN">例程達到同樣的效果: </p>
</font><p>i := 0; </p>
<p>while i<10 do</p>
<p>begin</p>
<p>i := i+1;</p>
<p>writeln(i);</p>
<p>end; </p>
<p>2.1.5.3 for<font face="宋體" lang="ZH-CN">語句 </p>
</font><p> for<font face="宋體"
lang="ZH-CN">語句的程序代碼會執(zhí)行一定的次數(shù)。它需要一個循環(huán)變量來控制循環(huán)次數(shù)。您需要說明一個變量,它的類型可以是整形、布爾型、字符型、枚舉型或子界型。</font></p>
<p><font face="宋體" lang="ZH-CN">下面的程序段會顯示</font>1<font face="宋體"
lang="ZH-CN">到</font>5<font face="宋體" lang="ZH-CN">的數(shù)字,</font>i<font
face="宋體" lang="ZH-CN">為控制變量: </p>
</font><p>var </p>
<p>i : integer;</p>
<p>for i := 1 to 5 do</p>
<p>writeln(i); </p>
<p><font face="宋體" lang="ZH-CN">
以上介紹了三種循環(huán)語句。如果您知道循環(huán)要執(zhí)行多少次的話,可以使用</font>for<font
face="宋體" lang="ZH-CN">語句。</font>for<font face="宋體" lang="ZH-CN">循環(huán)執(zhí)行速度快,效率比較高。如果您不知道循環(huán)要執(zhí)行多少次,但至少會執(zhí)行一次的話,選用</font>repeat..until<font
face="宋體" lang="ZH-CN">語句比較合適;當您認為程序可能一次都不執(zhí)行的話,最好選用</font>while..do<font
face="宋體" lang="ZH-CN">語句。 </p>
</font><p>2.1.6 <font face="宋體" lang="ZH-CN">程序模塊</font></p>
<p><font face="宋體" lang="ZH-CN">
程序模塊在</font>Object Pascal<font
face="宋體" lang="ZH-CN">中是很重要的概念。它們提供了應(yīng)用程序的結(jié)構(gòu),決定了變量、屬性值的范圍及程序執(zhí)行的過程。它由兩個部分組成:可選擇的說明部分和語句部分。如果有說明部分,則必在語句部分之前。說明部分包括變量說明、常量說明、類型說明、標號說明、程序,函數(shù),方法的說明等。語句部分敘述了可執(zhí)行的邏輯行動。</font></p>
<p><font face="宋體" lang="ZH-CN"> 在</font>Delphi<font
face="宋體" lang="ZH-CN">中,最常見的程序模塊便是事件處理過程中的程序模塊。下面的事件處理過程是含有變量說明部分的程序模塊: </p>
</font><p>procedure TForm.Button1Click(Sender Tobject);</p>
<p>var {<font face="宋體" lang="ZH-CN">程序模塊的說明部分}</font></p>
<p>Name : string;</p>
<p>begin {<font face="宋體" lang="ZH-CN">程序模塊的語句部分}</font></p>
<p>Name := Edit1.Text;</p>
<p>Edit2.Text := 'Welcome to Delphi'+Name;</p>
<p>end; {<font face="宋體" lang="ZH-CN">程序模塊結(jié)束} </p>
</font><p><font face="宋體" lang="ZH-CN">
庫單元也是程序模塊。庫單元的</font>interface<font
face="宋體" lang="ZH-CN">部分含有庫函數(shù)、類型、私有,公有域的說明,也可以含有常量、變量的說明。這一部分可以作為程序模塊的說明部分。在庫單元的</font>implementation<font
face="宋體" lang="ZH-CN">部分中通常含有各種事件處理過程,它們可以視為模塊的語句部分,是事件處理模塊。庫單元模塊結(jié)束于庫單元結(jié)束的</font>end.<font
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -