




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第10章 多媒體編程導(dǎo)讀10.1 動(dòng)畫(huà)組件TAnimate10.2 媒體播放器組件TMediaPlayer10.3 簡(jiǎn)單的動(dòng)畫(huà)播放程序的設(shè)計(jì)10.4 簡(jiǎn)單的CD播放器的制作小結(jié)習(xí)題導(dǎo)讀多媒體技術(shù)是近年來(lái)計(jì)算機(jī)技術(shù)的一個(gè)重要的發(fā)展方向,采用多媒體技術(shù)制作的軟件產(chǎn)品已經(jīng)越來(lái)越多地走進(jìn)生活、學(xué)習(xí)、娛樂(lè)之中。Delphi 8 for .NET作為一種快速開(kāi)發(fā)工具,不僅在開(kāi)發(fā)數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)應(yīng)用程序中令人稱道,而且Delphi 8 for .NET為開(kāi)發(fā)人員提供了功能全面的多媒體開(kāi)發(fā)組件,這些組件使得利用Delphi開(kāi)發(fā)多媒體應(yīng)用程序非常方便容易。本章主要介紹利用Delphi 8 for .NET中的TAn
2、imate組件和TMediaPlayer組件開(kāi)發(fā)多媒體應(yīng)用程序的方法。學(xué)習(xí)目標(biāo):掌握動(dòng)畫(huà)組件TAnimate的使用方法掌握媒體播放器組件TMediaPlayer的使用方法10.1 動(dòng)畫(huà)組件Tanimate1用途動(dòng)畫(huà)組件TAnimate 位于組件面板的Win32選項(xiàng)卡上,如圖10-1所示,該組件專門(mén)用于播放動(dòng)畫(huà)應(yīng)用程序。通常,在應(yīng)用程序中需要顯示動(dòng)態(tài)圖像,但不需要聲音設(shè)備的時(shí)候,可以使用TAnimate組件。TAnimate組件能夠播放的AVI(Audio Video Interlaced)剪輯可以是無(wú)聲的AVI文件、使用RLE(Runtime Length Encoding)壓縮方式壓縮過(guò)的A
3、VI文件,AVI剪輯通常是一個(gè)位圖圖像的序列。10.1 動(dòng)畫(huà)組件TAnimate2主要屬性(1)Active屬性:該屬性用來(lái)指定是否激活選中的AVI剪輯。當(dāng)該屬性值設(shè)置為true時(shí),可以讓選中的AVI剪輯按照用Repetition、StartFrame和StopFrame屬性設(shè)置的播放方式,在TAnimate窗口中自動(dòng)播放。該屬性值設(shè)置為false時(shí),選中的AVI剪輯不能播放,或停止正在播放的AVI剪輯。注意:在AVI剪輯被激活之前必須確保AVI剪輯是打開(kāi)的。(2)Center屬性:該屬性用來(lái)決定是否將AVI剪輯放在TAnimate區(qū)域的中間位置。10.1 動(dòng)畫(huà)組件Tanimate(3)Fil
4、eName屬性:該屬性用來(lái)指定AVI剪輯文件的文件名。需要注意的是,該文件包含的AVI剪輯必須是無(wú)聲的。此外,在指定播放AVI文件的時(shí)候要保證CommonAVI屬性值為aviNone。(4)FrameCount屬性:該屬性為只讀屬性,其屬性值記錄了所選中的AVI剪輯中包含的位圖圖像序列的總幀數(shù)。通過(guò)讀取該屬性,可以選擇播放AVI剪輯中的全部圖像幀,或其中指定的一部分圖像幀。(5)FrameHeight和FrameWidth屬性:這兩個(gè)屬性也是只讀的,它們記錄了選中的AVI剪輯中包含的位圖圖像所占矩形區(qū)域的高度和寬度。當(dāng)TAnimate組件的AutoSize屬性值設(shè)為true時(shí),TAnimate
5、組件的大小會(huì)自動(dòng)和圖像的大小進(jìn)行匹配。(6)Open屬性:該屬性指出AVI剪輯是否已經(jīng)調(diào)入內(nèi)存,并準(zhǔn)備播放。當(dāng)指定了需要播放的AVI剪輯后,Open屬性為true,如果這時(shí)Active屬性為false,那么AVI剪輯會(huì)自動(dòng)顯示StartFrame指定的圖像幀。若Open屬性設(shè)置為false,TAnimate組件會(huì)將所選取的AVI剪輯從內(nèi)存中釋放,并且使TAnimate組件區(qū)域內(nèi)沒(méi)有圖像10.1 動(dòng)畫(huà)組件Tanimate(7)Repetition屬性:該屬性指定重復(fù)播放AVI剪輯的次數(shù)。當(dāng)Active屬性設(shè)置為true時(shí),AVI剪輯開(kāi)始播放,當(dāng)播放次數(shù)達(dá)到由Repetition屬性指定的數(shù)值時(shí),
6、AVI剪輯停止播放,同時(shí)Active屬性設(shè)置為false。當(dāng)Repetition屬性設(shè)置為0時(shí),表示不指定重復(fù)播放的次數(shù)。這時(shí),可以通過(guò)設(shè)置Active屬性值和使用Stop方法來(lái)停止AVI剪輯的播放。(8)StartFrame屬性和StopFrame屬性:這兩個(gè)屬性用來(lái)指定AVI剪輯播放的起始幀和結(jié)束幀的序號(hào)。當(dāng)設(shè)置Active屬性為true時(shí),AVI剪輯將按照Repetition數(shù)字指定的播放次數(shù)重復(fù)播放StartFrame和StopFrame指定區(qū)間的圖像序列。(9)Timer屬性:該屬性用來(lái)指示在播放AVI剪輯的時(shí)候是否使用定時(shí)器。如果設(shè)置為使用定時(shí)器,那么TAnimate組件可以響應(yīng)定
7、時(shí)器發(fā)出的消息。該屬性主要用來(lái)實(shí)現(xiàn)多個(gè)多媒體組件之間的同步。10.1 動(dòng)畫(huà)組件Tanimate【例10-1】使用TAnimate組件設(shè)計(jì)一個(gè)簡(jiǎn)單的動(dòng)畫(huà)播放程序。創(chuàng)建一個(gè)工程PrjTAnimate.dpr,選擇組件面板的Win32選項(xiàng)卡,從中選擇TAnimate組件將其拖動(dòng)到默認(rèn)窗體中。這時(shí),可以看到TAnimate組件表現(xiàn)為一個(gè)空白區(qū)域,這就是用來(lái)顯示動(dòng)畫(huà)圖像的區(qū)域。將TAnimate組件的AutoSize屬性設(shè)置為true,接著選擇所要播放的AVI剪輯。在示例程序目錄下存在一個(gè)名為Clock.avi的AVI文件,設(shè)置TAnimate組件的FileName屬性clock.avi,然后設(shè)置Act
8、ive屬性為true,可以看到動(dòng)畫(huà)在窗口中已經(jīng)開(kāi)始播放,如圖10-2所示。10.2 媒體播放器組件TMediaPlayer1用途Delphi提供了一個(gè)TMediaPlayer組件,使得程序員可以使用它快速開(kāi)發(fā)音頻或者視頻播放器。TMediaPlayer組件提供了一個(gè)MCI(Media Control Interface,媒體控制接口),它可以輕松地在程序中加入多媒體功能。完整的MCI驅(qū)動(dòng)程序能夠支持*.wav、*.dat、*.midi和*.cda等格式的文件。TMediaPlayer組件位于組件面板的System選項(xiàng)卡上,如圖10-3所示。將TMediaPlayer組件添加到當(dāng)前活動(dòng)的窗體中,
9、如圖10-4所示。TMediaPlayer組件總共有9個(gè)按鈕:播放(btPlay)、暫停(btPause)、停止(btStop)、下一音軌(btNext)、上一音軌(btPrev)、快進(jìn)(btStep)、快退(btBack)、錄制(btRecord)和彈出CD(btEject)10.2 媒體播放器組件TMediaPlayer2主要屬性(1)AutoEnable屬性:該屬性用來(lái)設(shè)置TMediaPlayer組件的控制按鈕在運(yùn)行過(guò)程中是否可自動(dòng)變?yōu)榭捎没蛘卟豢捎?。如果其值為true,則媒體播放器可以自動(dòng)將控制按鈕變?yōu)榭捎没虿豢捎?。媒體播放器根據(jù)Mode屬性返回的設(shè)備狀態(tài)以及DeviceType屬性設(shè)
10、置的設(shè)備類型來(lái)確定哪個(gè)按鈕可用或不可用。(2)EnabledButtons屬性:該屬性用來(lái)設(shè)置控制按鈕的可用或不可用狀態(tài)。當(dāng)AutoEnable屬性設(shè)為true時(shí),EnabledButtons屬性無(wú)效。只有當(dāng)AutoEnable屬性為false時(shí),媒體播放器的控制按鈕才可通過(guò)EnabledButtons屬性來(lái)設(shè)置為可用或不可用。(3)AutoOpen屬性:該屬性用來(lái)設(shè)置應(yīng)用程序運(yùn)行時(shí),TMediaPlayer組件是否自動(dòng)打開(kāi),缺省值為false。如果該屬性的值為true,則媒體播放器自動(dòng)打開(kāi)DeviceType屬性所指定的多媒體設(shè)備;如果該屬性的值為false,則必須調(diào)用Open方法才能打開(kāi)設(shè)
11、備。如果在打開(kāi)設(shè)備時(shí)出錯(cuò),將觸發(fā)EMCIDeviceError類型的異常,該異常包含的出錯(cuò)消息保存在ErrorMessage屬性中。10.2 媒體播放器組件TMediaPlayer(4)AutoRewind屬性:該屬性用來(lái)設(shè)置媒體播放器是否具有自動(dòng)反復(fù)播放或錄音功能。如果該屬性的值為true,當(dāng)需要播放和錄音時(shí),將自動(dòng)返回到起始位置;如果為false,只有單擊Prev按鈕或在程序中調(diào)用Previous方法時(shí),才能返回到起始位置。(5)ColoredButtons屬性:該屬性用來(lái)設(shè)置控制按鈕是黑白顯示還是彩色顯示,默認(rèn)全部按鈕均為彩色顯示。(6)DeviceType屬性:該屬性用來(lái)指定使用Ope
12、n方法要打開(kāi)多媒體設(shè)備的類型。它的默認(rèn)值為dtAutoSelect,表示TMediaPlayer組件會(huì)根據(jù)FileName所指定的文件擴(kuò)展名來(lái)決定設(shè)備類型。如果播放文件擴(kuò)展名沒(méi)有相關(guān)的設(shè)備類型,需要用戶指定設(shè)備類型,而不能簡(jiǎn)單地使用dtAutoSelect。如果開(kāi)發(fā)的播放器是CD播放器,則在設(shè)計(jì)階段就設(shè)置該屬性為dtCDAudio,它表示媒體載體為CD。(7)Display屬性:該屬性用來(lái)為多媒體設(shè)備指定一個(gè)窗體組件用于顯示輸出,該屬性的默認(rèn)值為nil,表示該設(shè)備將自己創(chuàng)建窗體顯示輸出。(8)DisplayRect屬性:該屬性用來(lái)指定Display屬性指定的窗體中的一塊矩形面積,用于顯示多媒體
13、設(shè)備的輸出。10.2 媒體播放器組件TMediaPlayer(8)DisplayRect屬性:該屬性用來(lái)指定Display屬性指定的窗體中的一塊矩形面積,用于顯示多媒體設(shè)備的輸出。(9)Mode屬性:該屬性用來(lái)說(shuō)明被打開(kāi)的設(shè)備文件的狀態(tài)。(10)FileName屬性:該屬性用于存儲(chǔ)要打開(kāi)的文件名。(11)StartPos屬性:該屬性用來(lái)指定當(dāng)前要播放的媒體的起始位置。(12)EndPos屬性:該屬性用來(lái)指定當(dāng)前要播放的媒體的終止位置。(13)Position屬性:該用來(lái)指定媒體的當(dāng)前播放位置。(14)Length屬性:該屬性用于設(shè)定媒體的文件長(zhǎng)度。和TA開(kāi)發(fā)簡(jiǎn)單的多媒體應(yīng)用程序。10.2 媒體
14、播放器組件TMediaPlayer【例10-2】使用TMediaPlayer組件編寫(xiě)一個(gè)簡(jiǎn)單的AVI文件播放器程序。與介紹 TAnimate組件時(shí)提到的AVI文件播放器不一樣的是:這個(gè)播放器可以播放有聲音輸出的AVI文件。新建一個(gè)工程prjMediaPlayer.dpr,選擇組件面板的Standard選項(xiàng)卡,從中選擇TPanel組件添加到窗體中。在組件面板的System選項(xiàng)卡中選擇TMediaPlayer組件添加到窗體中。設(shè)置TMediaPlayer組件Display屬性為T(mén)Panel組件,設(shè)置FileName屬性為示例程序目錄下的clock.avi文件,然后將AutoOpen屬性設(shè)置為tru
15、e。運(yùn)行程序,可以在窗體中看到媒體播放器的按鈕,單擊 按鈕,這時(shí)可以看到在TPanel組件中開(kāi)始播放動(dòng)畫(huà),如圖10-5所示。如果計(jì)算機(jī)支持音頻輸出,那么可以聽(tīng)到隨畫(huà)面播放的聲音。10.3 簡(jiǎn)單的動(dòng)畫(huà)播放程序的設(shè)計(jì)為了更好地理解TAnimate組件的屬性、方法和事件,這一節(jié)創(chuàng)建一個(gè)簡(jiǎn)單的動(dòng)畫(huà)播放程序。通過(guò)實(shí)例來(lái)更好地掌握TAnimate組件的應(yīng)用以及多媒體程序的設(shè)計(jì)思路。10.3.1 界面設(shè)計(jì)新建一個(gè)工程PrjTAnimate.dpr,如圖10-6所示設(shè)計(jì)動(dòng)畫(huà)播放程序的界面。窗體及其組件屬性的設(shè)置如表10-2所示。10.3 簡(jiǎn)單的動(dòng)畫(huà)播放程序的設(shè)計(jì)10.3.2 代碼編寫(xiě)1定義存放起始幀、結(jié)束幀、
16、循環(huán)次數(shù)和總幀數(shù)的變量var Form1: TForm1; StartFrame,StopFrame,RepeatFrame,SumFrame:integer;10.3 簡(jiǎn)單的動(dòng)畫(huà)播放程序的設(shè)計(jì)2TAnimate1組件的OnOpen事件處理程序代碼procedure TForm1.Animate1Open(Sender: TObject);begin ShowMessage(TAnimaet組件觸發(fā)OnOpen事件,初始化變量!); (*初始化變量*) StartFrame:=Animate1.StartFrame; StopFrame:=Animate1.StopFrame; RepeatF
17、rame:=Animate1.Repetition; SumFrame:=Animate1.FrameCount; Estartframe.Text:=IntToStr(StartFrame); Estopframe.Text:=IntToStr(StopFrame); Esumframe.Text:=IntToStr(SumFrame); Erepeatframe.Text:=IntToStr(RepeatFrame);end;10.3 簡(jiǎn)單的動(dòng)畫(huà)播放程序的設(shè)計(jì)3“開(kāi)始播放”按鈕的OnClick事件處理程序代碼procedure TForm1.PlayClick(Sender: TObjec
18、t);begin StartFrame:=StrToInt(Estartframe.text); StopFrame:=StrToInt(Estopframe.text); RepeatFrame:=StrToInt(Erepeatframe.text);(*驗(yàn)證動(dòng)畫(huà)屬性驗(yàn)證編輯框的數(shù)據(jù)合法性*)10.3 簡(jiǎn)單的動(dòng)畫(huà)播放程序的設(shè)計(jì)if (StartFrameStopFrame) or(StopFrameSumFrame) then begin /輸入范圍錯(cuò)誤 ShowMessage(輸入幀的范圍錯(cuò)誤,所有設(shè)置復(fù)位!); Animate1.StartFrame:=1;Animate1.StopF
19、rame:=Animate1.FrameCount; Animate1.Repetition:=0; Estartframe.Text:=1;Estopframe.Text:=IntToStr(Animate1.FrameCount); Erepeatframe.Text:=0; endelse begin (*設(shè)置組件的Enabled屬性*) Play.Enabled:=False; Stop.Enabled:=True; Estartframe.Enabled:=False; Estopframe.Enabled:=False; Erepeatframe.Enabled:=False; (
20、*設(shè)置TAnimate組件的屬性,然后進(jìn)行播放*) Animate1.StartFrame:=StartFrame; Animate1.StopFrame:=StopFrame; Animate1.Repetition:=RepeatFrame; Animate1.Active:=True; /進(jìn)入播放狀態(tài) end;end;10.3 簡(jiǎn)單的動(dòng)畫(huà)播放程序的設(shè)計(jì)4“停止播放”按鈕的OnClick事件處理程序代碼procedure TForm1.stopClick(Sender: TObject);begin(*停止播放*) Animate1.Stop; Play.Enabled:=True; /“
21、開(kāi)始播放”按鈕可用 Stop.Enabled:=False;(*設(shè)置文本框?yàn)榭捎?) Estartframe.Enabled:=True; Estopframe.Enabled:=True; Erepeatframe.Enabled:=True;end;10.4 簡(jiǎn)單的CD播放器的制作10.4.1 界面設(shè)計(jì)新建一個(gè)工程PrjPcd.dpr,設(shè)計(jì)如圖10-8所示的CD播放器的界面,窗體及其組件屬性的設(shè)置如表10-3所示。10.4 簡(jiǎn)單的CD播放器的制作10.4.2 代碼編寫(xiě)1初始化程序procedure TForm1.FormCreate(Sender: TObject);begin with
22、MediaPlayer1 do begin Visible:=True; DeviceType:=dtCDAudio; /設(shè)置多媒體設(shè)備的類型 Open; /通過(guò)Open方法打開(kāi)CD播放設(shè)備 end;end;10.4 簡(jiǎn)單的CD播放器的制作2按鈕的OnClick事件處理程序代碼procedure TForm1.Button1Click(Sender: TObject);begin MediaPlayer1.Play; /“播放”按鈕的OnClick事件處理end;procedure TForm1.Button3Click(Sender: TObject);begin MediaPlayer1.
23、Pause; /“暫停”按鈕的OnClick事件處理end;procedure TForm1.Button2Click(Sender: TObject);begin MediaPlayer1.Stop; /“停止”按鈕的OnClick事件處理end;procedure TForm1.Button4Click(Sender: TObject);beginprocedure TForm1.Button4Click(Sender: TObject);begin MediaPlayer1.Previous; /“前一曲”按鈕的OnClick事件處理end;procedure TForm1.Button
24、6Click(Sender: TObject);begin MediaPlayer1.Next; /“后一曲”按鈕的OnClick事件處理end;procedure TForm1.Button7Click(Sender: TObject);begin MediaPlayer1.Eject; /“彈出”按鈕的OnClick事件處理end;10.4 簡(jiǎn)單的CD播放器的制作(*“打開(kāi)”按鈕的OnClick事件處理*)procedure TForm1.Button5Click(Sender: TObject);begin if OpenDialog1.Execute then begin MediaP
25、layer1.FileName:=OpenDialog1.FileName; MediaPlayer1.Open; end;end;10.4 簡(jiǎn)單的CD播放器的制作3Timer1組件的OnTimer事件處理程序代碼窗體中的TTimer組件的作用是為程序的運(yùn)行提供事件的控制,例如顯示CD播放的當(dāng)前位置、狀態(tài)等信息。這里利用TMemo組件顯示相關(guān)的信息。10.4 簡(jiǎn)單的CD播放器的制作procedure TForm1.Timer1Timer(Sender: TObject);var i,j,k:integer; pos1,pos2:longint; flag:Boolean; str1:strin
26、g;begin memo1.lines0:=總曲目數(shù):+inttostr(MediaPlayer1.Tracks); MediaPlayer1.TimeFormat:=tfMilliseconds; pos1:=0; pos2:=0; flag:=true; for i:=0 to MediaPlayer1.Tracks-1 do /顯示正在播放的第幾首曲目 begin for j:=0 to i-1 do begin pos1:=pos1+MediaPlayer1.TrackLengthj; pos2:=pos1; end; pos2:=pos2+MediaPlayer1.TrackLeng
27、thi; if MediaPlayer1.Positionpos1 then begin if MediaPlayer1.Positionpos2 then begin memo1.lines1:=正在播放的曲目:第 +inttostr(i+1)+ 首; flag:=False; end; end;10.4 簡(jiǎn)單的CD播放器的制作 if flag then memo1.lines1:=正在播放的曲目:第 1 首; k:=round(MediaPlayer1.Length/60000); memo1.lines2:=曲目長(zhǎng)度:+inttostr(k); str1:=當(dāng)前狀態(tài): ;(*顯示CD播放
28、的當(dāng)前狀態(tài)*) Case MediaPlayer1.Mode of mpNotReady: Memo1.Lines3:=str1+未就緒; mpStopped: Memo1.Lines3:=str1+已停止; mpPlaying: Memo1.Lines3:=str1+正在播放; mpRecording: Memo1.Lines3:=str1+正在錄音; mpSeeking: Memo1.Lines3:=str1+正在搜索; mpPaused: Memo1.Lines3:=str1+已暫停; mpOpen: Memo1.Lines3:=str1+打開(kāi); end;4關(guān)閉窗體的事件處理程序代碼pr
29、ocedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin MediaPlayer1.close;end;運(yùn)行程序,結(jié)果如圖10-9所示。小結(jié)多媒體技術(shù)與計(jì)算機(jī)技術(shù)緊密結(jié)合,制作出了大量用戶喜愛(ài)的生活、學(xué)習(xí)、娛樂(lè)軟件,Delphi為開(kāi)發(fā)人員提供了功能全面的多媒體開(kāi)發(fā)組件。動(dòng)畫(huà)組件TAnimate位于組件面板的Win32選項(xiàng)卡上,該組件專門(mén)用于播放動(dòng)畫(huà)應(yīng)用程序。通常,在應(yīng)用程序中需要顯示動(dòng)態(tài)圖像,但不需要聲音設(shè)備的時(shí)候,可以使用TAnimate組件。TAnimate組件能夠播放的AVI(Audio Video
30、 Interlaced)剪輯可以是無(wú)聲的AVI文件、使用RLE(Runtime Length Encoding)壓縮方式壓縮過(guò)的AVI文件。TMediaPlayer組件位于組件面板的System選項(xiàng)卡上,Delphi提供的TMediaPlayer組件可以在應(yīng)用程序中控制多媒體播放器,如一個(gè)CD-ROM播放器或控制記錄設(shè)備,如視頻播放/錄制設(shè)備、MIDI編程器。TMediaPlayer提供了打開(kāi)Microsoft的MCI(Media Control Interface)程序的通道,使程序員可以以相當(dāng)簡(jiǎn)捷的途徑實(shí)現(xiàn)對(duì)大范圍的多媒體性能的操作。TMediaPlayer為音頻視頻播放器的開(kāi)發(fā)帶來(lái)極大便
31、利。通過(guò)本章學(xué)習(xí),讀者應(yīng)掌握使用TAnimate和TMediaPlayer組件開(kāi)發(fā)多媒體應(yīng)用程序的方法。習(xí)題1利用TAnimate組件編寫(xiě)一個(gè)簡(jiǎn)單的動(dòng)畫(huà)播放程序。2利用TMediaPlayer組件制作一個(gè)簡(jiǎn)易的媒體播放器,具有播放、暫停、停止、播放前一曲、播放后一曲的功能。普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材Delphi程序設(shè)計(jì)及實(shí)驗(yàn)指導(dǎo)(第二版)第1章 Delphi概述導(dǎo)讀1.1 Delphi的發(fā)展1.2 Delphi 8 for .NET的功能特點(diǎn)1.3 Delphi的安裝1.4 Delphi的集成開(kāi)發(fā)環(huán)境小結(jié)習(xí)題導(dǎo)讀Delphi作為第四代編程語(yǔ)言之一,采用基于窗體和面向?qū)ο蟮姆椒ǎ瑑?nèi)嵌高
32、速的編譯器,提供功能強(qiáng)大的數(shù)據(jù)庫(kù)支持,并與Windows編程緊密結(jié)合,具有成熟的組件技術(shù)。本章將主要介紹Delphi的發(fā)展、功能特點(diǎn)、安裝和集成開(kāi)發(fā)環(huán)境。學(xué)習(xí)目標(biāo):了解Delphi的發(fā)展了解Delphi的功能特點(diǎn)掌握Delphi的安裝步驟熟悉并掌握Delphi的集成開(kāi)發(fā)環(huán)境1.1 Delphi的發(fā)展Delphi是Windows系統(tǒng)下的可視化集成開(kāi)發(fā)工具,提供了強(qiáng)大的可視化組件庫(kù)(VCL,Visual Component Library),為快速高效地開(kāi)發(fā)出Windows系統(tǒng)下的應(yīng)用程序提供了方便。Delphi從最初的Delphi 1.0、Delphi 2.0發(fā)展到了現(xiàn)在的Delphi 8 fo
33、r .NET,以及最新的Delphi 2007等版本。Delphi 8 for .NET是Windows環(huán)境下進(jìn)行交叉平臺(tái)快速應(yīng)用開(kāi)發(fā)的軟件,無(wú)論是企業(yè)級(jí)用戶,還是個(gè)人開(kāi)發(fā)者,都能夠利用Delphi 8 for .NET輕松快捷地構(gòu)建各類應(yīng)用。Delphi 8 for .NET集成了Microsoft .NET Framework和Win32的性能,包括了所有Windows應(yīng)用開(kāi)發(fā),大大加速了富客戶(Rich Client)應(yīng)用、Web應(yīng)用、Web服務(wù)器以及定制構(gòu)件的開(kāi)發(fā),它提供了多語(yǔ)言、多平臺(tái)的集成開(kāi)發(fā)環(huán)境,同時(shí)利用BDP.NET(Borland Data Providers for .NE
34、T)及ADO.NET(ActiveX Data Object for .NET)技術(shù)從根本上加速并簡(jiǎn)化了數(shù)據(jù)庫(kù)應(yīng)用的開(kāi)發(fā),這些都極大地方便了不同應(yīng)用程序的開(kāi)發(fā)。1.2 Delphi 8 for .NET的功能特點(diǎn)Delphi的主要特點(diǎn)可視化開(kāi)發(fā)環(huán)境豐富的可視化組件庫(kù)VCL面向?qū)ο筇匦愿咝У木幾g器強(qiáng)大的數(shù)據(jù)庫(kù)開(kāi)發(fā)功能良好的分布式應(yīng)用開(kāi)發(fā)支持1.2 Delphi 8 for .NET的功能特點(diǎn)Delphi 8 for .NET的新特性使用 Borland Delphi 8與Microsoft .NET Framework,改善了應(yīng)用過(guò)程中的互操作性、安全性與可靠性。具有較好的向下兼容性,使得Win
35、dows應(yīng)用向.NET的過(guò)渡變得輕松。使用Borland Enterprise Core Objects(ECO)模型驅(qū)動(dòng)的框架可以加速開(kāi)發(fā)生命周期。使用Delphi 8 與 ASP.NET可以開(kāi)發(fā)高性能的Web解決方案。提升分布式遠(yuǎn)端開(kāi)發(fā)組的表現(xiàn),改善分布式遠(yuǎn)端開(kāi)發(fā)組之間的溝通。使用內(nèi)含的、功能強(qiáng)大的第三方解決方案,提高應(yīng)用程序的性能。支持兩種不同的開(kāi)發(fā)特性:將WIN32的Delphi,.NET的Delphi開(kāi)發(fā)全部集成到一個(gè)開(kāi)發(fā)及調(diào)試環(huán)境下。在同一平臺(tái)下,輕松地將WIN32應(yīng)用移值到.NET應(yīng)用。1.2 Delphi 8 for .NET的功能特點(diǎn)支持Delphi語(yǔ)言新增的內(nèi)部函數(shù)和其他代
36、碼規(guī)則,如:多單元命名空間等。支持Winforms,ASP.NET Web 窗體以及Borland獨(dú)自擁有的VCL for .NET和VCL for Win32可視化開(kāi)發(fā)RAD(快速開(kāi)發(fā))的方法。支持多種數(shù)據(jù)庫(kù)存取(使用ADO.NET數(shù)據(jù)對(duì)象而不僅僅是BdpDataAdapter)以及使用新的DataSync,DataHub,RemoteServer 和RemoteConnection 組件開(kāi)發(fā)多層數(shù)據(jù)庫(kù)應(yīng)用。支持重構(gòu)源代碼,增強(qiáng)了代碼的可維護(hù)性和代碼的重用性。支持在Delphi .NET應(yīng)用中集成J2EE EJB或帶有Janeva的CORBA服務(wù)器解決方案。1.3 Delphi的安裝Delp
37、hi 8 for .NET的安裝要求Delphi 8 for .NET有3個(gè)版本,分別是設(shè)計(jì)師版(Architect)、專業(yè)版(Professional)和企業(yè)版(Enterprise),分別適用于一般用途開(kāi)發(fā)、較高層次開(kāi)發(fā)和進(jìn)行多層數(shù)據(jù)庫(kù)及分布式應(yīng)用的開(kāi)發(fā)。本書(shū)以Delphi 8 for .NET設(shè)計(jì)師版為例進(jìn)行講解。在安裝Delphi 8 for .NET之前,請(qǐng)先檢查一下軟硬件配置是否符合以下要求:Pentium 4以上的CPU。512 MB以上的內(nèi)存,推薦1GB以上。Windows 2000/XP或更高版本的操作系統(tǒng)。Delphi 8 for .NET的安裝需300 MB以上的硬盤(pán)空間
38、。VGA或更高分辨率的顯示器。1.3 Delphi的安裝Delphi 8 for .NET的安裝步驟本文以在Windows XP中文版下用光盤(pán)安裝Delphi 8 for .NET設(shè)計(jì)師版(Architect)為例,來(lái)介紹Delphi 8 for .NET的安裝過(guò)程。,如圖1-1所示。(2)單擊Next按鈕,將顯示安裝所需的軟件許可協(xié)議,如圖1-2所示,如果用戶同意,單擊Next按鈕進(jìn)入下一步。(3)。(4)安裝向?qū)崾居脩暨x擇安裝類型,如圖1-4所示。全部安裝(Complete):默認(rèn)是全部安裝。定義安裝(Custom):如果需要自定義安裝,則可選擇此選項(xiàng)。1.3 Delphi的安裝啟動(dòng)Wi
39、ndows XP將Delphi 8 for .NET安裝盤(pán)放入光驅(qū),系統(tǒng)會(huì)自動(dòng)彈出Delphi 8 for .NET的歡迎界面1.3 Delphi的安裝安裝所需的軟件許可協(xié)議 用戶輸入用戶信息1.3 Delphi的安裝安裝向?qū)崾居脩暨x擇安裝類型,選擇安裝路徑1.3 Delphi的安裝安裝附加組件準(zhǔn)備安裝1.3 Delphi的安裝 安裝進(jìn)度安裝完畢1.4 Delphi的集成開(kāi)發(fā)環(huán)境Delphi 8 for .NET主窗口介紹標(biāo)題欄、主菜單欄、快捷工具欄、組件面板Tool Palette、代碼編輯器、對(duì)象觀察器Object Inspector和工程管理器Project Manager1.4 De
40、lphi的集成開(kāi)發(fā)環(huán)境File菜單Delph 8 for .NET以工程來(lái)管理應(yīng)用程序,主要的文件有兩種:工程文件和單元文件。1.4 Delphi的集成開(kāi)發(fā)環(huán)境Edit菜單Edit菜單的功能是對(duì)單元文件和組件對(duì)象進(jìn)行編輯。文本編輯與Windows下的文本編輯功能基本相同;組件編輯包括對(duì)組件對(duì)象的排列、前臺(tái)與后臺(tái)顯示、鎖定及設(shè)定事件響應(yīng)順序等1.4 Delphi的集成開(kāi)發(fā)環(huán)境Search菜單Search菜單的功能是對(duì)文本進(jìn)行快速查找、替換等,對(duì)源代碼的編輯很有用1.4 Delphi的集成開(kāi)發(fā)環(huán)境View菜單View菜單的功能是管理工程、顯示或隱藏各類窗口,用戶可以使用其中的Project Man
41、ager對(duì)工程進(jìn)行管理,也可以根據(jù)需要在Delphi 8 for .NET的IDE中顯示指定窗口。1.4 Delphi的集成開(kāi)發(fā)環(huán)境Project菜單Project菜單的功能是對(duì)工程進(jìn)行管理Run菜單Run菜單的主要功能是運(yùn)行程序和調(diào)試程序。1.4 Delphi的集成開(kāi)發(fā)環(huán)境Component菜單Component菜單的主要功能是進(jìn)行組件的創(chuàng)建、添加和安裝等。用戶可以從網(wǎng)絡(luò)獲得更多的第三方組件,通過(guò)Component的Install .NET Components或Install VCL Components子菜單項(xiàng)將它們安裝到組件面板上。Tools菜單Tools菜單的主要功能是查看和修改De
42、lphi 8 for .NET集成開(kāi)發(fā)環(huán)境的配置參數(shù)及其他一些系統(tǒng)工具。1.4 Delphi的集成開(kāi)發(fā)環(huán)境Window菜單Window菜單的功能是記錄在開(kāi)發(fā)過(guò)程中使用過(guò)的文件、窗體、組件或其他內(nèi)容,若需重新使用這些內(nèi)容,只要在Window菜單中單擊相應(yīng)的名字即可。Help菜單Help菜單提供系統(tǒng)各類幫助信息。1.4 Delphi的集成開(kāi)發(fā)環(huán)境快捷工具欄Speed ToolBar快捷工具欄位于Delphi 8 for .NET主窗口的下方,它提供了與主菜單的常用菜單項(xiàng)相對(duì)應(yīng)的命令按鈕,可以在不打開(kāi)主菜單的情況下快速執(zhí)行這些命令。組件面板Delphi 8 for .NET主窗口的另一部分是組件面板
43、,位于主窗口的右下方,圖1-20-1為VCL 窗體下的組件面板,1-20-2為Window窗體下的組件面板。組件按功能、基類或特性進(jìn)行了分類,為用戶使用組件進(jìn)行應(yīng)用設(shè)計(jì)帶來(lái)了很大的方便。1.4 Delphi的集成開(kāi)發(fā)環(huán)境窗體設(shè)計(jì)器用戶界面是用戶與應(yīng)用系統(tǒng)直接交互的界面。設(shè)計(jì)用戶界面是設(shè)計(jì)應(yīng)用程序的重要部分。Delphi的用戶界面由窗體構(gòu)成,窗體的設(shè)計(jì)是在窗體設(shè)計(jì)器中完成的。Delphi 8 for .NET提供了一個(gè)功能強(qiáng)大的、所見(jiàn)即所得的窗體設(shè)計(jì)器。1.4 Delphi的集成開(kāi)發(fā)環(huán)境工程管理器(Project Manager)工程管理器可用來(lái)查看并且組織窗體、可執(zhí)行文件、匯編程序、對(duì)象和庫(kù)文
44、件等工程文件,在工程管理器中能增加、刪除和重新命名文件,也可以聯(lián)合相關(guān)的工程來(lái)形成工程組,可以同時(shí)進(jìn)行編譯。包括三個(gè)頁(yè)面:Project Manager、Model View、Data Exploers1.4 Delphi的集成開(kāi)發(fā)環(huán)境對(duì)象查看器對(duì)象查看器(Object Inspector)的主要功能是對(duì)對(duì)象進(jìn)行設(shè)計(jì)和管理,它是聯(lián)系界面各組件和程序代碼的媒介。對(duì)象查看器由對(duì)象列表框、屬性選項(xiàng)卡和事件選項(xiàng)卡3部分組成,1.4 Delphi的集成開(kāi)發(fā)環(huán)境代碼編輯器代碼編輯器包括兩部分,其外觀如圖1-24所示。左邊是代碼樹(shù)狀瀏覽器,右邊是代碼編輯器,標(biāo)題欄顯示的是當(dāng)前單元文件的名稱。代碼編輯器是進(jìn)行
45、源程序編輯窗口。小結(jié)Delphi 8 for .NET是一種功能強(qiáng)大的可視化開(kāi)發(fā)工具, 功能強(qiáng)大、簡(jiǎn)單易學(xué)、編譯速度快, 成為最受歡迎的 Windows 應(yīng)用程序開(kāi)發(fā)工具之一。Delphi 8 for .NET支持多種Windows編程語(yǔ)言Delphi 8 for .NET作為全新的可視化編程工具,為用戶提供了一種方便快捷的Windows應(yīng)用程序集成開(kāi)發(fā)環(huán)境Delphi 8 for .NET在數(shù)據(jù)庫(kù)開(kāi)發(fā)方面做了很大改進(jìn),它提供的BDE Administrator和Data Explorer工具具有強(qiáng)大的數(shù)據(jù)庫(kù)管理功能;Delphi.NET提供了對(duì)ADO.NET的支持,全新的 BDP.NET(B
46、orland Data Providers for Microsoft.NET) 是一個(gè)基于ADO.NET的.NET 數(shù)據(jù)提供者實(shí)現(xiàn),能夠連接一系列流行的數(shù)據(jù)庫(kù),可以使用它方便地開(kāi)發(fā)多種數(shù)據(jù)庫(kù)結(jié)構(gòu)的軟件,從客戶機(jī)/服務(wù)器模式到多層數(shù)據(jù)結(jié)構(gòu)模式。本章主要介紹了Delphi 8 for .NET的功能特點(diǎn)以及Delphi 8 for .NET的詳細(xì)安裝過(guò)程及其集成開(kāi)發(fā)環(huán)境(IDE)習(xí)題Delphi 8 for .NET有哪些主要特點(diǎn)?Delphi 8 for .NET有哪些新功能?簡(jiǎn)述Delphi 8 for .NET的安裝要求。Delphi 8 for .NET集成開(kāi)發(fā)環(huán)境由哪幾部分組成?簡(jiǎn)述各
47、部分的功能第2章 面向?qū)ο蟮腜ascal導(dǎo)讀2.1 數(shù)據(jù)類型2.2 常量與變量2.3 表達(dá)式與運(yùn)算符2.4 語(yǔ)句2.5 函數(shù)和過(guò)程小結(jié)習(xí)題導(dǎo)讀Delphi.NET的編程語(yǔ)言是在Pascal的基礎(chǔ)上發(fā)展起來(lái)的,它繼承了Pascal語(yǔ)言語(yǔ)法結(jié)構(gòu)嚴(yán)謹(jǐn)和編譯代碼高效優(yōu)化等優(yōu)點(diǎn)。本章將主要介紹Pascal的數(shù)據(jù)類型、常量、變量、運(yùn)算符、表達(dá)式、語(yǔ)句、函數(shù)和過(guò)程等。學(xué)習(xí)目標(biāo):掌握Pascal語(yǔ)言中的數(shù)據(jù)類型掌握常量、變量的概念、定義和使用掌握運(yùn)算符和表達(dá)式的使用熟悉并掌握Pascal語(yǔ)言中語(yǔ)句的格式和使用方法掌握Pascal語(yǔ)言中函數(shù)和過(guò)程的使用2.1 數(shù)據(jù)類型Object Pascal是一種“強(qiáng)制類型”
48、的語(yǔ)言,一個(gè)變量在使用前必須先定義其數(shù)據(jù)類型,這樣就決定了變量的存儲(chǔ)格式、取值范圍和所能參與的運(yùn)算。Object Pascal語(yǔ)言具有豐富的數(shù)據(jù)類型,可以分為簡(jiǎn)單數(shù)據(jù)類型字符串類型結(jié)構(gòu)類型可變類型等2.1 數(shù)據(jù)類型簡(jiǎn)單數(shù)據(jù)類型簡(jiǎn)單數(shù)據(jù)類型包括有序類型和實(shí)型兩種。1有序類型有序類型包括整型、字符型、布爾型、枚舉型和子界型。有序類型是一種線性數(shù)據(jù)結(jié)構(gòu),每個(gè)值都有惟一的前驅(qū)(除第一個(gè))和惟一的后繼(除最后一個(gè))。2.1 數(shù)據(jù)類型(1)整型在32位的操作系統(tǒng)下,整型的表示范圍及存儲(chǔ)格式見(jiàn)表2-1。(2)字符型字符型是Object Pascal中一種相當(dāng)重要的數(shù)據(jù)類型。字符型的類型標(biāo)識(shí)符是Char。字符
49、型的數(shù)據(jù)只能是單個(gè)字符,不能是一串字符。例如ABC,x=? 等都不是字符型的數(shù)據(jù),而是字符串。2.1 數(shù)據(jù)類型(3)布爾型通常用到的布爾類型標(biāo)識(shí)符為Boolean,一個(gè)Boolean類型的變量占一個(gè)字節(jié),它只有兩種取值:true和false。布爾類型以非零值作為true,在一個(gè)本該出現(xiàn)Boolean值的地方如果是一個(gè)非零值,編譯器會(huì)自動(dòng)把它變?yōu)閠rue。布爾類型主要應(yīng)用于條件語(yǔ)句和判斷語(yǔ)句中。例如:定義變量i,ch,t分別為整型、字符型、布爾型。var i: Integer; ch: Char; t: Boolean;2.1 數(shù)據(jù)類型(4)枚舉類型枚舉類型用一些標(biāo)識(shí)符來(lái)表示一系列有序數(shù),即由一
50、些標(biāo)識(shí)符組成的一個(gè)線性表。定義枚舉類型的語(yǔ)法如下:typetypeName=(val1,.,valn)其中typeName和val1.valn都是有效的標(biāo)識(shí)符。在括號(hào)內(nèi)的標(biāo)識(shí)符列表里將所有的標(biāo)識(shí)符一一列出來(lái)。2.1 數(shù)據(jù)類型(5)子界類型子界類型指的是某個(gè)有序類型(稱為基類)的一個(gè)子集。定義子界類型的語(yǔ)法如下:typetypeName=Low.High;其中Low和High是具有相同有序類型的常量表達(dá)式,Low必須小于High。typeName定義了一個(gè)包含從Low到High之間所有值的一個(gè)子界類型。例如:typemonth=(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,S
51、ep,Oct,Nov,Dec);day=1.31;定義了一個(gè)枚舉類型month,可能的值為Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec;定義了一個(gè)子界類型day,可能的值為1、2、312.1 數(shù)據(jù)類型類型取值范圍存儲(chǔ)格式Integer-2 147 483 6482 147 483 647有符號(hào)32位整數(shù)Cardinal04 294 967 295無(wú)符號(hào)32位整數(shù)Shortint-128127有符號(hào)8位整數(shù)Smallint-32 76832 767有符號(hào)16位整數(shù)Longint-2 147 483 6482 147 483 647有符號(hào)32位整數(shù)
52、Int64-263263-l有符號(hào)64位整數(shù)Byte0255無(wú)符號(hào)8位整數(shù)Word065 535無(wú)符號(hào)16位整數(shù)Longword04 294 967 295無(wú)符號(hào)32位整數(shù)2.1 數(shù)據(jù)類型2實(shí)型類型范圍有效位所占位數(shù)Real2.9*10-241.7*103811126Real482.9*10-391.7*103811126Single1.5*10-453.4*1038784Double5.0*10-3241.7*1030815168Extended3.6*10-49511.1*104932192010Comp-263+l263-l19208Currency-922337203685477.58
53、08922337203685477.5807192082.1 數(shù)據(jù)類型字符串類型字符串類型是用一對(duì)單引號(hào)括起來(lái)的一系列字符。Object Pascal支持以下字符串類型:ShortString、AnsiString、LongString和WideString。注意:習(xí)慣上使用的字符串默認(rèn)為AnsiString類型。SBCS(單字符集)是指平時(shí)用的擴(kuò)展型ANSI碼,用一個(gè)字節(jié)表示一個(gè)字符。MBCS(多字符集)多用于亞洲文字,用一個(gè)或多個(gè)字節(jié)來(lái)表示一個(gè)字符或符號(hào)。類型最多字符數(shù)字節(jié)數(shù)字符集ShortString2552256 BANSI向后兼容AnsiString23142 GBSBCS,MBCS
54、LongString23142 GBUnicodeWideString23042 GB等價(jià)于AnsiChar2.1 數(shù)據(jù)類型結(jié)構(gòu)類型結(jié)構(gòu)數(shù)據(jù)類型是一種復(fù)合數(shù)據(jù)類型,由多個(gè)數(shù)據(jù)組成。結(jié)構(gòu)類型包括集合類型、數(shù)組類型、記錄類型、文件類型等。1集合類型集合類型是一組相同類型元素的組合。定義集合類型如下:typeName=set of BaseType其中BaseType是一個(gè)有序類,即基類,基類是有序類型,如整型、布爾型、字符型、枚舉型和子界型。一個(gè)集合類的值域是基類的所有子集(包括空集)。2.1 數(shù)據(jù)類型2數(shù)組數(shù)組是一些具有相同類型元素的有序組合。數(shù)組的存儲(chǔ)方式有靜態(tài)和動(dòng)態(tài)兩種。(1)靜態(tài)數(shù)組靜態(tài)數(shù)
55、組的聲明格式為:typeName=arrayindexType1,.,indexTypen of BaseType;下標(biāo)類型常是子界類型。只有一個(gè)下標(biāo)類型的數(shù)組稱為一維數(shù)組。2.1 數(shù)據(jù)類型(2)動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組沒(méi)有固定的大小或長(zhǎng)度。當(dāng)賦值或使用某些函數(shù)(如SetLength)時(shí),動(dòng)態(tài)數(shù)組在內(nèi)存中重新分配大小。動(dòng)態(tài)數(shù)組的聲明格式為:type Name=array of BaseType;定義動(dòng)態(tài)數(shù)組只給出數(shù)組的維數(shù)和元素類型,而不需聲明元素的個(gè)數(shù)。2.1 數(shù)據(jù)類型3記錄類型記錄類型(有的語(yǔ)言中被稱為結(jié)構(gòu))是一個(gè)不同種類元素的集合,每個(gè)元素稱為字段(field)。在聲明時(shí),指定記錄的名字和每個(gè)字
56、段的類型。聲明格式如下:typeRecordTypeName=recordFieldList1:type1;FieldList2:type2; FieldListn:typen;end;其中RecordtTypeName是一個(gè)合法的標(biāo)識(shí)符,每個(gè)type指一種數(shù)據(jù)類型,每個(gè)FieldList是一個(gè)標(biāo)識(shí)符或是一列由逗號(hào)分隔的標(biāo)識(shí)符,最后一個(gè)分號(hào)可有可無(wú)。2.1 數(shù)據(jù)類型4文件類型文件類型是由相同類型的元素組成的有序集合。文件類型的聲明格式如下:typefileTypeName = file of type其中type是一種大小固定的數(shù)據(jù)類型,不可以是動(dòng)態(tài)數(shù)組、長(zhǎng)字符串、類、對(duì)象、可變類型、其他文件
57、類型以及包含這些類型的結(jié)構(gòu)類型。2.1 數(shù)據(jù)類型可變類型有時(shí)要對(duì)一些數(shù)據(jù)類型變化的數(shù)據(jù)進(jìn)行操作,并且在編譯期間不能確定數(shù)據(jù)的類型,這時(shí)就可以使用可變類型的數(shù)據(jù)。這些數(shù)據(jù)的數(shù)據(jù)類型可以在運(yùn)行期間改變,但是它們比固定類型的數(shù)據(jù)占用更多的空間,對(duì)這種類型的數(shù)據(jù)的操作也更慢??勺冾愋涂梢允褂贸涗?、集合、靜態(tài)數(shù)組、文件等結(jié)構(gòu)類型、指針類型及長(zhǎng)整型外的所有類型??勺冾愋陀幸粋€(gè)特殊的值Null,表明該變量的值是未知的或是錯(cuò)誤的??勺冾愋妥兞康穆暶鞲袷綖椋簐ar v1:Variant; 2.2 常量與變量2.2.1 標(biāo)識(shí)符標(biāo)識(shí)符用來(lái)描述Object Pascal程序中的標(biāo)記、對(duì)象、過(guò)程、類型、單元、變量及程
58、序等。標(biāo)識(shí)符的大小寫(xiě)無(wú)關(guān)(即它不區(qū)分大小寫(xiě)),并且遵循以下規(guī)則:可為任意長(zhǎng)度,但只有前255個(gè)字符有效。標(biāo)識(shí)符的第1個(gè)字符必須是字母或下劃線。跟在第1個(gè)字符后面的字符必須是字母、數(shù)字或下劃線。標(biāo)識(shí)符中不允許出現(xiàn)空格。可以通過(guò)圓點(diǎn)“.”運(yùn)算符將兩個(gè)或更多標(biāo)識(shí)符組合成一個(gè)有效的標(biāo)識(shí)符。例如:FormOpt.Explode恰當(dāng)?shù)貙?duì)標(biāo)識(shí)符進(jìn)行命名(即選擇合適的名字)是一個(gè)優(yōu)秀程序的重要組成部分,合適的標(biāo)識(shí)符有助于閱讀代碼的人“顧名思義”,提高程序可讀性。2.2 常量與變量2.2.2 常量常量是一個(gè)在程序的運(yùn)行過(guò)程中具有不變值的標(biāo)識(shí)符,用Const保留字和等號(hào)(=)的形式聲明,不需要指定其數(shù)據(jù)類型,只需
59、給出具體的值,編譯器會(huì)根據(jù)值確定正確的類型。常量的聲明格式如下:Const 常量名=表達(dá)式; 例如:Const pi=3.14; n=20; s=I am a student.;變量不能在一個(gè)常量聲明中使用,但算術(shù)和邏輯運(yùn)算符可以,下面的函數(shù)也同樣可以在常量聲明中使用。Abs Low Round Chr Odd SizeOf Hi OrdSucc High Pred Swap Length Ptr Trunc Lo2.2 常量與變量2.2.3 變量變量是程序中代表一個(gè)內(nèi)存地址的標(biāo)識(shí)符,而此地址中的內(nèi)容在程序執(zhí)行過(guò)程中可以改變。在變量使用之前必須先進(jìn)行聲明,變量的聲明使用保留字var。同一類型的
60、變量可在同一聲明行上指定其類型,之間用逗號(hào)隔開(kāi)。變量聲明格式如下:var 變量名表:類型名; 例如:var s:string; i:integer; flag:Boolean; 2.3 表達(dá)式與運(yùn)算符2.3.1 表達(dá)式表達(dá)式是編程語(yǔ)言中最常用的部分。所謂表達(dá)式就是變量、常量、字符串、運(yùn)算符及函數(shù)按照一定規(guī)則的組合。例如:Peoples Republic Of +ChinaGross/12Max(x,y)-Min(x,y)2.3 表達(dá)式與運(yùn)算符2.3.2 運(yùn)算符Object Pascal的運(yùn)算符包括算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符和集合運(yùn)算符等。有些運(yùn)算符與所操作的對(duì)象有關(guān),它們的意義隨著所使
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠房簡(jiǎn)易借用合同范本
- 村莊租地合同范本
- 鑰匙委托合同范本
- Thymine-15N2-13C-生命科學(xué)試劑-MCE
- 工廠修路合同范本
- 3-4-Difluoro-isopropyl-U-47700-生命科學(xué)試劑-MCE
- 策劃咨詢合同范本
- 采購(gòu)青菜合同范本
- 園丁勞務(wù)合同范本
- 臺(tái)球店長(zhǎng)合同范本
- 2024-2025學(xué)年九年級(jí)化學(xué)人教版上冊(cè)檢測(cè)試卷(1-4單元)
- 2024年遼寧省鞍山岫巖滿族自治縣事業(yè)單位招聘(150人)歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- DBJ46-070-2024 海南省民用建筑外門(mén)窗工程技術(shù)標(biāo)準(zhǔn)
- 金屬冶煉安全生產(chǎn)實(shí)務(wù)注冊(cè)安全工程師考試(初級(jí))試題與參考答案
- 大學(xué)生就業(yè)指導(dǎo) 課件 第六單元 就業(yè)權(quán)益保護(hù)
- 2024年高職高考語(yǔ)文必背古詩(shī)
- 護(hù)理質(zhì)控護(hù)士競(jìng)聘
- 醫(yī)學(xué)課件炎癥性腸病4
- 2024年4月自考00263外國(guó)法制史試題及答案
- 《井中分布式光纖聲波傳感數(shù)據(jù)采集規(guī)程》標(biāo)準(zhǔn)報(bào)批稿
- 人音版 音樂(lè) 八年級(jí)下冊(cè) 第一單元 我和你教案
評(píng)論
0/150
提交評(píng)論