版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第10章 多媒体编程导读10.1 动画组件TAnimate10.2 媒体播放器组件TMediaPlayer10.3 简单的动画播放程序的设计10.4 简单的CD播放器的制作小结习题导读多媒体技术是近年来计算机技术的一个重要的发展方向,采用多媒体技术制作的软件产品已经越来越多地走进生活、学习、娱乐之中。Delphi 8 for .NET作为一种快速开发工具,不仅在开发数据库和网络应用程序中令人称道,而且Delphi 8 for .NET为开发人员提供了功能全面的多媒体开发组件,这些组件使得利用Delphi开发多媒体应用程序非常方便容易。本章主要介绍利用Delphi 8 for .NET中的TAn
2、imate组件和TMediaPlayer组件开发多媒体应用程序的方法。学习目标:掌握动画组件TAnimate的使用方法掌握媒体播放器组件TMediaPlayer的使用方法10.1 动画组件Tanimate1用途动画组件TAnimate 位于组件面板的Win32选项卡上,如图10-1所示,该组件专门用于播放动画应用程序。通常,在应用程序中需要显示动态图像,但不需要声音设备的时候,可以使用TAnimate组件。TAnimate组件能够播放的AVI(Audio Video Interlaced)剪辑可以是无声的AVI文件、使用RLE(Runtime Length Encoding)压缩方式压缩过的A
3、VI文件,AVI剪辑通常是一个位图图像的序列。10.1 动画组件TAnimate2主要属性(1)Active属性:该属性用来指定是否激活选中的AVI剪辑。当该属性值设置为true时,可以让选中的AVI剪辑按照用Repetition、StartFrame和StopFrame属性设置的播放方式,在TAnimate窗口中自动播放。该属性值设置为false时,选中的AVI剪辑不能播放,或停止正在播放的AVI剪辑。注意:在AVI剪辑被激活之前必须确保AVI剪辑是打开的。(2)Center属性:该属性用来决定是否将AVI剪辑放在TAnimate区域的中间位置。10.1 动画组件Tanimate(3)Fil
4、eName属性:该属性用来指定AVI剪辑文件的文件名。需要注意的是,该文件包含的AVI剪辑必须是无声的。此外,在指定播放AVI文件的时候要保证CommonAVI属性值为aviNone。(4)FrameCount属性:该属性为只读属性,其属性值记录了所选中的AVI剪辑中包含的位图图像序列的总帧数。通过读取该属性,可以选择播放AVI剪辑中的全部图像帧,或其中指定的一部分图像帧。(5)FrameHeight和FrameWidth属性:这两个属性也是只读的,它们记录了选中的AVI剪辑中包含的位图图像所占矩形区域的高度和宽度。当TAnimate组件的AutoSize属性值设为true时,TAnimate
5、组件的大小会自动和图像的大小进行匹配。(6)Open属性:该属性指出AVI剪辑是否已经调入内存,并准备播放。当指定了需要播放的AVI剪辑后,Open属性为true,如果这时Active属性为false,那么AVI剪辑会自动显示StartFrame指定的图像帧。若Open属性设置为false,TAnimate组件会将所选取的AVI剪辑从内存中释放,并且使TAnimate组件区域内没有图像10.1 动画组件Tanimate(7)Repetition属性:该属性指定重复播放AVI剪辑的次数。当Active属性设置为true时,AVI剪辑开始播放,当播放次数达到由Repetition属性指定的数值时,
6、AVI剪辑停止播放,同时Active属性设置为false。当Repetition属性设置为0时,表示不指定重复播放的次数。这时,可以通过设置Active属性值和使用Stop方法来停止AVI剪辑的播放。(8)StartFrame属性和StopFrame属性:这两个属性用来指定AVI剪辑播放的起始帧和结束帧的序号。当设置Active属性为true时,AVI剪辑将按照Repetition数字指定的播放次数重复播放StartFrame和StopFrame指定区间的图像序列。(9)Timer属性:该属性用来指示在播放AVI剪辑的时候是否使用定时器。如果设置为使用定时器,那么TAnimate组件可以响应定
7、时器发出的消息。该属性主要用来实现多个多媒体组件之间的同步。10.1 动画组件Tanimate【例10-1】使用TAnimate组件设计一个简单的动画播放程序。创建一个工程PrjTAnimate.dpr,选择组件面板的Win32选项卡,从中选择TAnimate组件将其拖动到默认窗体中。这时,可以看到TAnimate组件表现为一个空白区域,这就是用来显示动画图像的区域。将TAnimate组件的AutoSize属性设置为true,接着选择所要播放的AVI剪辑。在示例程序目录下存在一个名为Clock.avi的AVI文件,设置TAnimate组件的FileName属性clock.avi,然后设置Act
8、ive属性为true,可以看到动画在窗口中已经开始播放,如图10-2所示。10.2 媒体播放器组件TMediaPlayer1用途Delphi提供了一个TMediaPlayer组件,使得程序员可以使用它快速开发音频或者视频播放器。TMediaPlayer组件提供了一个MCI(Media Control Interface,媒体控制接口),它可以轻松地在程序中加入多媒体功能。完整的MCI驱动程序能够支持*.wav、*.dat、*.midi和*.cda等格式的文件。TMediaPlayer组件位于组件面板的System选项卡上,如图10-3所示。将TMediaPlayer组件添加到当前活动的窗体中,
9、如图10-4所示。TMediaPlayer组件总共有9个按钮:播放(btPlay)、暂停(btPause)、停止(btStop)、下一音轨(btNext)、上一音轨(btPrev)、快进(btStep)、快退(btBack)、录制(btRecord)和弹出CD(btEject)10.2 媒体播放器组件TMediaPlayer2主要属性(1)AutoEnable属性:该属性用来设置TMediaPlayer组件的控制按钮在运行过程中是否可自动变为可用或者不可用。如果其值为true,则媒体播放器可以自动将控制按钮变为可用或不可用。媒体播放器根据Mode属性返回的设备状态以及DeviceType属性设
10、置的设备类型来确定哪个按钮可用或不可用。(2)EnabledButtons属性:该属性用来设置控制按钮的可用或不可用状态。当AutoEnable属性设为true时,EnabledButtons属性无效。只有当AutoEnable属性为false时,媒体播放器的控制按钮才可通过EnabledButtons属性来设置为可用或不可用。(3)AutoOpen属性:该属性用来设置应用程序运行时,TMediaPlayer组件是否自动打开,缺省值为false。如果该属性的值为true,则媒体播放器自动打开DeviceType属性所指定的多媒体设备;如果该属性的值为false,则必须调用Open方法才能打开设
11、备。如果在打开设备时出错,将触发EMCIDeviceError类型的异常,该异常包含的出错消息保存在ErrorMessage属性中。10.2 媒体播放器组件TMediaPlayer(4)AutoRewind属性:该属性用来设置媒体播放器是否具有自动反复播放或录音功能。如果该属性的值为true,当需要播放和录音时,将自动返回到起始位置;如果为false,只有单击Prev按钮或在程序中调用Previous方法时,才能返回到起始位置。(5)ColoredButtons属性:该属性用来设置控制按钮是黑白显示还是彩色显示,默认全部按钮均为彩色显示。(6)DeviceType属性:该属性用来指定使用Ope
12、n方法要打开多媒体设备的类型。它的默认值为dtAutoSelect,表示TMediaPlayer组件会根据FileName所指定的文件扩展名来决定设备类型。如果播放文件扩展名没有相关的设备类型,需要用户指定设备类型,而不能简单地使用dtAutoSelect。如果开发的播放器是CD播放器,则在设计阶段就设置该属性为dtCDAudio,它表示媒体载体为CD。(7)Display属性:该属性用来为多媒体设备指定一个窗体组件用于显示输出,该属性的默认值为nil,表示该设备将自己创建窗体显示输出。(8)DisplayRect属性:该属性用来指定Display属性指定的窗体中的一块矩形面积,用于显示多媒体
13、设备的输出。10.2 媒体播放器组件TMediaPlayer(8)DisplayRect属性:该属性用来指定Display属性指定的窗体中的一块矩形面积,用于显示多媒体设备的输出。(9)Mode属性:该属性用来说明被打开的设备文件的状态。(10)FileName属性:该属性用于存储要打开的文件名。(11)StartPos属性:该属性用来指定当前要播放的媒体的起始位置。(12)EndPos属性:该属性用来指定当前要播放的媒体的终止位置。(13)Position属性:该用来指定媒体的当前播放位置。(14)Length属性:该属性用于设定媒体的文件长度。和TA开发简单的多媒体应用程序。10.2 媒体
14、播放器组件TMediaPlayer【例10-2】使用TMediaPlayer组件编写一个简单的AVI文件播放器程序。与介绍 TAnimate组件时提到的AVI文件播放器不一样的是:这个播放器可以播放有声音输出的AVI文件。新建一个工程prjMediaPlayer.dpr,选择组件面板的Standard选项卡,从中选择TPanel组件添加到窗体中。在组件面板的System选项卡中选择TMediaPlayer组件添加到窗体中。设置TMediaPlayer组件Display属性为TPanel组件,设置FileName属性为示例程序目录下的clock.avi文件,然后将AutoOpen属性设置为tru
15、e。运行程序,可以在窗体中看到媒体播放器的按钮,单击 按钮,这时可以看到在TPanel组件中开始播放动画,如图10-5所示。如果计算机支持音频输出,那么可以听到随画面播放的声音。10.3 简单的动画播放程序的设计为了更好地理解TAnimate组件的属性、方法和事件,这一节创建一个简单的动画播放程序。通过实例来更好地掌握TAnimate组件的应用以及多媒体程序的设计思路。10.3.1 界面设计新建一个工程PrjTAnimate.dpr,如图10-6所示设计动画播放程序的界面。窗体及其组件属性的设置如表10-2所示。10.3 简单的动画播放程序的设计10.3.2 代码编写1定义存放起始帧、结束帧、
16、循环次数和总帧数的变量var Form1: TForm1; StartFrame,StopFrame,RepeatFrame,SumFrame:integer;10.3 简单的动画播放程序的设计2TAnimate1组件的OnOpen事件处理程序代码procedure TForm1.Animate1Open(Sender: TObject);begin ShowMessage(TAnimaet组件触发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 简单的动画播放程序的设计3“开始播放”按钮的OnClick事件处理程序代码procedure TForm1.PlayClick(Sender: TObjec
18、t);begin StartFrame:=StrToInt(Estartframe.text); StopFrame:=StrToInt(Estopframe.text); RepeatFrame:=StrToInt(Erepeatframe.text);(*验证动画属性验证编辑框的数据合法性*)10.3 简单的动画播放程序的设计if (StartFrameStopFrame) or(StopFrameSumFrame) then begin /输入范围错误 ShowMessage(输入帧的范围错误,所有设置复位!); 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 (*设置组件的Enabled属性*) Play.Enabled:=False; Stop.Enabled:=True; Estartframe.Enabled:=False; Estopframe.Enabled:=False; Erepeatframe.Enabled:=False; (
20、*设置TAnimate组件的属性,然后进行播放*) Animate1.StartFrame:=StartFrame; Animate1.StopFrame:=StopFrame; Animate1.Repetition:=RepeatFrame; Animate1.Active:=True; /进入播放状态 end;end;10.3 简单的动画播放程序的设计4“停止播放”按钮的OnClick事件处理程序代码procedure TForm1.stopClick(Sender: TObject);begin(*停止播放*) Animate1.Stop; Play.Enabled:=True; /“
21、开始播放”按钮可用 Stop.Enabled:=False;(*设置文本框为可用*) Estartframe.Enabled:=True; Estopframe.Enabled:=True; Erepeatframe.Enabled:=True;end;10.4 简单的CD播放器的制作10.4.1 界面设计新建一个工程PrjPcd.dpr,设计如图10-8所示的CD播放器的界面,窗体及其组件属性的设置如表10-3所示。10.4 简单的CD播放器的制作10.4.2 代码编写1初始化程序procedure TForm1.FormCreate(Sender: TObject);begin with
22、MediaPlayer1 do begin Visible:=True; DeviceType:=dtCDAudio; /设置多媒体设备的类型 Open; /通过Open方法打开CD播放设备 end;end;10.4 简单的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 简单的CD播放器的制作(*“打开”按钮的OnClick事件处理*)procedure TForm1.Button5Click(Sender: TObject);begin if OpenDialog1.Execute then begin MediaP
25、layer1.FileName:=OpenDialog1.FileName; MediaPlayer1.Open; end;end;10.4 简单的CD播放器的制作3Timer1组件的OnTimer事件处理程序代码窗体中的TTimer组件的作用是为程序的运行提供事件的控制,例如显示CD播放的当前位置、状态等信息。这里利用TMemo组件显示相关的信息。10.4 简单的CD播放器的制作procedure TForm1.Timer1Timer(Sender: TObject);var i,j,k:integer; pos1,pos2:longint; flag:Boolean; str1:strin
26、g;begin memo1.lines0:=总曲目数:+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 简单的CD播放器的制作 if flag then memo1.lines1:=正在播放的曲目:第 1 首; k:=round(MediaPlayer1.Length/60000); memo1.lines2:=曲目长度:+inttostr(k); str1:=当前状态: ;(*显示CD播放
28、的当前状态*) 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+打开; end;4关闭窗体的事件处理程序代码pr
29、ocedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin MediaPlayer1.close;end;运行程序,结果如图10-9所示。小结多媒体技术与计算机技术紧密结合,制作出了大量用户喜爱的生活、学习、娱乐软件,Delphi为开发人员提供了功能全面的多媒体开发组件。动画组件TAnimate位于组件面板的Win32选项卡上,该组件专门用于播放动画应用程序。通常,在应用程序中需要显示动态图像,但不需要声音设备的时候,可以使用TAnimate组件。TAnimate组件能够播放的AVI(Audio Video
30、 Interlaced)剪辑可以是无声的AVI文件、使用RLE(Runtime Length Encoding)压缩方式压缩过的AVI文件。TMediaPlayer组件位于组件面板的System选项卡上,Delphi提供的TMediaPlayer组件可以在应用程序中控制多媒体播放器,如一个CD-ROM播放器或控制记录设备,如视频播放/录制设备、MIDI编程器。TMediaPlayer提供了打开Microsoft的MCI(Media Control Interface)程序的通道,使程序员可以以相当简捷的途径实现对大范围的多媒体性能的操作。TMediaPlayer为音频视频播放器的开发带来极大便
31、利。通过本章学习,读者应掌握使用TAnimate和TMediaPlayer组件开发多媒体应用程序的方法。习题1利用TAnimate组件编写一个简单的动画播放程序。2利用TMediaPlayer组件制作一个简易的媒体播放器,具有播放、暂停、停止、播放前一曲、播放后一曲的功能。普通高等教育“十一五”国家级规划教材Delphi程序设计及实验指导(第二版)第1章 Delphi概述导读1.1 Delphi的发展1.2 Delphi 8 for .NET的功能特点1.3 Delphi的安装1.4 Delphi的集成开发环境小结习题导读Delphi作为第四代编程语言之一,采用基于窗体和面向对象的方法,内嵌高
32、速的编译器,提供功能强大的数据库支持,并与Windows编程紧密结合,具有成熟的组件技术。本章将主要介绍Delphi的发展、功能特点、安装和集成开发环境。学习目标:了解Delphi的发展了解Delphi的功能特点掌握Delphi的安装步骤熟悉并掌握Delphi的集成开发环境1.1 Delphi的发展Delphi是Windows系统下的可视化集成开发工具,提供了强大的可视化组件库(VCL,Visual Component Library),为快速高效地开发出Windows系统下的应用程序提供了方便。Delphi从最初的Delphi 1.0、Delphi 2.0发展到了现在的Delphi 8 fo
33、r .NET,以及最新的Delphi 2007等版本。Delphi 8 for .NET是Windows环境下进行交叉平台快速应用开发的软件,无论是企业级用户,还是个人开发者,都能够利用Delphi 8 for .NET轻松快捷地构建各类应用。Delphi 8 for .NET集成了Microsoft .NET Framework和Win32的性能,包括了所有Windows应用开发,大大加速了富客户(Rich Client)应用、Web应用、Web服务器以及定制构件的开发,它提供了多语言、多平台的集成开发环境,同时利用BDP.NET(Borland Data Providers for .NE
34、T)及ADO.NET(ActiveX Data Object for .NET)技术从根本上加速并简化了数据库应用的开发,这些都极大地方便了不同应用程序的开发。1.2 Delphi 8 for .NET的功能特点Delphi的主要特点可视化开发环境丰富的可视化组件库VCL面向对象特性高效的编译器强大的数据库开发功能良好的分布式应用开发支持1.2 Delphi 8 for .NET的功能特点Delphi 8 for .NET的新特性使用 Borland Delphi 8与Microsoft .NET Framework,改善了应用过程中的互操作性、安全性与可靠性。具有较好的向下兼容性,使得Win
35、dows应用向.NET的过渡变得轻松。使用Borland Enterprise Core Objects(ECO)模型驱动的框架可以加速开发生命周期。使用Delphi 8 与 ASP.NET可以开发高性能的Web解决方案。提升分布式远端开发组的表现,改善分布式远端开发组之间的沟通。使用内含的、功能强大的第三方解决方案,提高应用程序的性能。支持两种不同的开发特性:将WIN32的Delphi,.NET的Delphi开发全部集成到一个开发及调试环境下。在同一平台下,轻松地将WIN32应用移值到.NET应用。1.2 Delphi 8 for .NET的功能特点支持Delphi语言新增的内部函数和其他代
36、码规则,如:多单元命名空间等。支持Winforms,ASP.NET Web 窗体以及Borland独自拥有的VCL for .NET和VCL for Win32可视化开发RAD(快速开发)的方法。支持多种数据库存取(使用ADO.NET数据对象而不仅仅是BdpDataAdapter)以及使用新的DataSync,DataHub,RemoteServer 和RemoteConnection 组件开发多层数据库应用。支持重构源代码,增强了代码的可维护性和代码的重用性。支持在Delphi .NET应用中集成J2EE EJB或带有Janeva的CORBA服务器解决方案。1.3 Delphi的安装Delp
37、hi 8 for .NET的安装要求Delphi 8 for .NET有3个版本,分别是设计师版(Architect)、专业版(Professional)和企业版(Enterprise),分别适用于一般用途开发、较高层次开发和进行多层数据库及分布式应用的开发。本书以Delphi 8 for .NET设计师版为例进行讲解。在安装Delphi 8 for .NET之前,请先检查一下软硬件配置是否符合以下要求:Pentium 4以上的CPU。512 MB以上的内存,推荐1GB以上。Windows 2000/XP或更高版本的操作系统。Delphi 8 for .NET的安装需300 MB以上的硬盘空间
38、。VGA或更高分辨率的显示器。1.3 Delphi的安装Delphi 8 for .NET的安装步骤本文以在Windows XP中文版下用光盘安装Delphi 8 for .NET设计师版(Architect)为例,来介绍Delphi 8 for .NET的安装过程。,如图1-1所示。(2)单击Next按钮,将显示安装所需的软件许可协议,如图1-2所示,如果用户同意,单击Next按钮进入下一步。(3)。(4)安装向导提示用户选择安装类型,如图1-4所示。全部安装(Complete):默认是全部安装。定义安装(Custom):如果需要自定义安装,则可选择此选项。1.3 Delphi的安装启动Wi
39、ndows XP将Delphi 8 for .NET安装盘放入光驱,系统会自动弹出Delphi 8 for .NET的欢迎界面1.3 Delphi的安装安装所需的软件许可协议 用户输入用户信息1.3 Delphi的安装安装向导提示用户选择安装类型,选择安装路径1.3 Delphi的安装安装附加组件准备安装1.3 Delphi的安装 安装进度安装完毕1.4 Delphi的集成开发环境Delphi 8 for .NET主窗口介绍标题栏、主菜单栏、快捷工具栏、组件面板Tool Palette、代码编辑器、对象观察器Object Inspector和工程管理器Project Manager1.4 De
40、lphi的集成开发环境File菜单Delph 8 for .NET以工程来管理应用程序,主要的文件有两种:工程文件和单元文件。1.4 Delphi的集成开发环境Edit菜单Edit菜单的功能是对单元文件和组件对象进行编辑。文本编辑与Windows下的文本编辑功能基本相同;组件编辑包括对组件对象的排列、前台与后台显示、锁定及设定事件响应顺序等1.4 Delphi的集成开发环境Search菜单Search菜单的功能是对文本进行快速查找、替换等,对源代码的编辑很有用1.4 Delphi的集成开发环境View菜单View菜单的功能是管理工程、显示或隐藏各类窗口,用户可以使用其中的Project Man
41、ager对工程进行管理,也可以根据需要在Delphi 8 for .NET的IDE中显示指定窗口。1.4 Delphi的集成开发环境Project菜单Project菜单的功能是对工程进行管理Run菜单Run菜单的主要功能是运行程序和调试程序。1.4 Delphi的集成开发环境Component菜单Component菜单的主要功能是进行组件的创建、添加和安装等。用户可以从网络获得更多的第三方组件,通过Component的Install .NET Components或Install VCL Components子菜单项将它们安装到组件面板上。Tools菜单Tools菜单的主要功能是查看和修改De
42、lphi 8 for .NET集成开发环境的配置参数及其他一些系统工具。1.4 Delphi的集成开发环境Window菜单Window菜单的功能是记录在开发过程中使用过的文件、窗体、组件或其他内容,若需重新使用这些内容,只要在Window菜单中单击相应的名字即可。Help菜单Help菜单提供系统各类帮助信息。1.4 Delphi的集成开发环境快捷工具栏Speed ToolBar快捷工具栏位于Delphi 8 for .NET主窗口的下方,它提供了与主菜单的常用菜单项相对应的命令按钮,可以在不打开主菜单的情况下快速执行这些命令。组件面板Delphi 8 for .NET主窗口的另一部分是组件面板
43、,位于主窗口的右下方,图1-20-1为VCL 窗体下的组件面板,1-20-2为Window窗体下的组件面板。组件按功能、基类或特性进行了分类,为用户使用组件进行应用设计带来了很大的方便。1.4 Delphi的集成开发环境窗体设计器用户界面是用户与应用系统直接交互的界面。设计用户界面是设计应用程序的重要部分。Delphi的用户界面由窗体构成,窗体的设计是在窗体设计器中完成的。Delphi 8 for .NET提供了一个功能强大的、所见即所得的窗体设计器。1.4 Delphi的集成开发环境工程管理器(Project Manager)工程管理器可用来查看并且组织窗体、可执行文件、汇编程序、对象和库文
44、件等工程文件,在工程管理器中能增加、删除和重新命名文件,也可以联合相关的工程来形成工程组,可以同时进行编译。包括三个页面:Project Manager、Model View、Data Exploers1.4 Delphi的集成开发环境对象查看器对象查看器(Object Inspector)的主要功能是对对象进行设计和管理,它是联系界面各组件和程序代码的媒介。对象查看器由对象列表框、属性选项卡和事件选项卡3部分组成,1.4 Delphi的集成开发环境代码编辑器代码编辑器包括两部分,其外观如图1-24所示。左边是代码树状浏览器,右边是代码编辑器,标题栏显示的是当前单元文件的名称。代码编辑器是进行
45、源程序编辑窗口。小结Delphi 8 for .NET是一种功能强大的可视化开发工具, 功能强大、简单易学、编译速度快, 成为最受欢迎的 Windows 应用程序开发工具之一。Delphi 8 for .NET支持多种Windows编程语言Delphi 8 for .NET作为全新的可视化编程工具,为用户提供了一种方便快捷的Windows应用程序集成开发环境Delphi 8 for .NET在数据库开发方面做了很大改进,它提供的BDE Administrator和Data Explorer工具具有强大的数据库管理功能;Delphi.NET提供了对ADO.NET的支持,全新的 BDP.NET(B
46、orland Data Providers for Microsoft.NET) 是一个基于ADO.NET的.NET 数据提供者实现,能够连接一系列流行的数据库,可以使用它方便地开发多种数据库结构的软件,从客户机/服务器模式到多层数据结构模式。本章主要介绍了Delphi 8 for .NET的功能特点以及Delphi 8 for .NET的详细安装过程及其集成开发环境(IDE)习题Delphi 8 for .NET有哪些主要特点?Delphi 8 for .NET有哪些新功能?简述Delphi 8 for .NET的安装要求。Delphi 8 for .NET集成开发环境由哪几部分组成?简述各
47、部分的功能第2章 面向对象的Pascal导读2.1 数据类型2.2 常量与变量2.3 表达式与运算符2.4 语句2.5 函数和过程小结习题导读Delphi.NET的编程语言是在Pascal的基础上发展起来的,它继承了Pascal语言语法结构严谨和编译代码高效优化等优点。本章将主要介绍Pascal的数据类型、常量、变量、运算符、表达式、语句、函数和过程等。学习目标:掌握Pascal语言中的数据类型掌握常量、变量的概念、定义和使用掌握运算符和表达式的使用熟悉并掌握Pascal语言中语句的格式和使用方法掌握Pascal语言中函数和过程的使用2.1 数据类型Object Pascal是一种“强制类型”
48、的语言,一个变量在使用前必须先定义其数据类型,这样就决定了变量的存储格式、取值范围和所能参与的运算。Object Pascal语言具有丰富的数据类型,可以分为简单数据类型字符串类型结构类型可变类型等2.1 数据类型简单数据类型简单数据类型包括有序类型和实型两种。1有序类型有序类型包括整型、字符型、布尔型、枚举型和子界型。有序类型是一种线性数据结构,每个值都有惟一的前驱(除第一个)和惟一的后继(除最后一个)。2.1 数据类型(1)整型在32位的操作系统下,整型的表示范围及存储格式见表2-1。(2)字符型字符型是Object Pascal中一种相当重要的数据类型。字符型的类型标识符是Char。字符
49、型的数据只能是单个字符,不能是一串字符。例如ABC,x=? 等都不是字符型的数据,而是字符串。2.1 数据类型(3)布尔型通常用到的布尔类型标识符为Boolean,一个Boolean类型的变量占一个字节,它只有两种取值:true和false。布尔类型以非零值作为true,在一个本该出现Boolean值的地方如果是一个非零值,编译器会自动把它变为true。布尔类型主要应用于条件语句和判断语句中。例如:定义变量i,ch,t分别为整型、字符型、布尔型。var i: Integer; ch: Char; t: Boolean;2.1 数据类型(4)枚举类型枚举类型用一些标识符来表示一系列有序数,即由一
50、些标识符组成的一个线性表。定义枚举类型的语法如下:typetypeName=(val1,.,valn)其中typeName和val1.valn都是有效的标识符。在括号内的标识符列表里将所有的标识符一一列出来。2.1 数据类型(5)子界类型子界类型指的是某个有序类型(称为基类)的一个子集。定义子界类型的语法如下:typetypeName=Low.High;其中Low和High是具有相同有序类型的常量表达式,Low必须小于High。typeName定义了一个包含从Low到High之间所有值的一个子界类型。例如:typemonth=(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,S
51、ep,Oct,Nov,Dec);day=1.31;定义了一个枚举类型month,可能的值为Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec;定义了一个子界类型day,可能的值为1、2、312.1 数据类型类型取值范围存储格式Integer-2 147 483 6482 147 483 647有符号32位整数Cardinal04 294 967 295无符号32位整数Shortint-128127有符号8位整数Smallint-32 76832 767有符号16位整数Longint-2 147 483 6482 147 483 647有符号32位整数
52、Int64-263263-l有符号64位整数Byte0255无符号8位整数Word065 535无符号16位整数Longword04 294 967 295无符号32位整数2.1 数据类型2实型类型范围有效位所占位数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 数据类型字符串类型字符串类型是用一对单引号括起来的一系列字符。Object Pascal支持以下字符串类型:ShortString、AnsiString、LongString和WideString。注意:习惯上使用的字符串默认为AnsiString类型。SBCS(单字符集)是指平时用的扩展型ANSI码,用一个字节表示一个字符。MBCS(多字符集)多用于亚洲文字,用一个或多个字节来表示一个字符或符号。类型最多字符数字节数字符集ShortString2552256 BANSI向后兼容AnsiString23142 GBSBCS,MBCS
54、LongString23142 GBUnicodeWideString23042 GB等价于AnsiChar2.1 数据类型结构类型结构数据类型是一种复合数据类型,由多个数据组成。结构类型包括集合类型、数组类型、记录类型、文件类型等。1集合类型集合类型是一组相同类型元素的组合。定义集合类型如下:typeName=set of BaseType其中BaseType是一个有序类,即基类,基类是有序类型,如整型、布尔型、字符型、枚举型和子界型。一个集合类的值域是基类的所有子集(包括空集)。2.1 数据类型2数组数组是一些具有相同类型元素的有序组合。数组的存储方式有静态和动态两种。(1)静态数组静态数
55、组的声明格式为:typeName=arrayindexType1,.,indexTypen of BaseType;下标类型常是子界类型。只有一个下标类型的数组称为一维数组。2.1 数据类型(2)动态数组动态数组没有固定的大小或长度。当赋值或使用某些函数(如SetLength)时,动态数组在内存中重新分配大小。动态数组的声明格式为:type Name=array of BaseType;定义动态数组只给出数组的维数和元素类型,而不需声明元素的个数。2.1 数据类型3记录类型记录类型(有的语言中被称为结构)是一个不同种类元素的集合,每个元素称为字段(field)。在声明时,指定记录的名字和每个字
56、段的类型。声明格式如下:typeRecordTypeName=recordFieldList1:type1;FieldList2:type2; FieldListn:typen;end;其中RecordtTypeName是一个合法的标识符,每个type指一种数据类型,每个FieldList是一个标识符或是一列由逗号分隔的标识符,最后一个分号可有可无。2.1 数据类型4文件类型文件类型是由相同类型的元素组成的有序集合。文件类型的声明格式如下:typefileTypeName = file of type其中type是一种大小固定的数据类型,不可以是动态数组、长字符串、类、对象、可变类型、其他文件
57、类型以及包含这些类型的结构类型。2.1 数据类型可变类型有时要对一些数据类型变化的数据进行操作,并且在编译期间不能确定数据的类型,这时就可以使用可变类型的数据。这些数据的数据类型可以在运行期间改变,但是它们比固定类型的数据占用更多的空间,对这种类型的数据的操作也更慢。可变类型可以使用除记录、集合、静态数组、文件等结构类型、指针类型及长整型外的所有类型。可变类型有一个特殊的值Null,表明该变量的值是未知的或是错误的。可变类型变量的声明格式为:var v1:Variant; 2.2 常量与变量2.2.1 标识符标识符用来描述Object Pascal程序中的标记、对象、过程、类型、单元、变量及程
58、序等。标识符的大小写无关(即它不区分大小写),并且遵循以下规则:可为任意长度,但只有前255个字符有效。标识符的第1个字符必须是字母或下划线。跟在第1个字符后面的字符必须是字母、数字或下划线。标识符中不允许出现空格。可以通过圆点“.”运算符将两个或更多标识符组合成一个有效的标识符。例如:FormOpt.Explode恰当地对标识符进行命名(即选择合适的名字)是一个优秀程序的重要组成部分,合适的标识符有助于阅读代码的人“顾名思义”,提高程序可读性。2.2 常量与变量2.2.2 常量常量是一个在程序的运行过程中具有不变值的标识符,用Const保留字和等号(=)的形式声明,不需要指定其数据类型,只需
59、给出具体的值,编译器会根据值确定正确的类型。常量的声明格式如下:Const 常量名=表达式; 例如:Const pi=3.14; n=20; s=I am a student.;变量不能在一个常量声明中使用,但算术和逻辑运算符可以,下面的函数也同样可以在常量声明中使用。Abs Low Round Chr Odd SizeOf Hi OrdSucc High Pred Swap Length Ptr Trunc Lo2.2 常量与变量2.2.3 变量变量是程序中代表一个内存地址的标识符,而此地址中的内容在程序执行过程中可以改变。在变量使用之前必须先进行声明,变量的声明使用保留字var。同一类型的
60、变量可在同一声明行上指定其类型,之间用逗号隔开。变量声明格式如下:var 变量名表:类型名; 例如:var s:string; i:integer; flag:Boolean; 2.3 表达式与运算符2.3.1 表达式表达式是编程语言中最常用的部分。所谓表达式就是变量、常量、字符串、运算符及函数按照一定规则的组合。例如:Peoples Republic Of +ChinaGross/12Max(x,y)-Min(x,y)2.3 表达式与运算符2.3.2 运算符Object Pascal的运算符包括算术运算符、逻辑运算符、关系运算符和集合运算符等。有些运算符与所操作的对象有关,它们的意义随着所使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 装修合同书标准
- 项目环保技术开发合作合同
- 建筑工程设备购销合同
- 师德主题活动方案
- 台式电脑租赁服务协议
- 商品买卖协议
- 第五单元名著导读《昆虫记》教学设计-2024-2025学年统编版语文八年级上册
- 德育常规检查方案
- 第8课《列夫.托尔斯泰》教学设计+2024-2025学年统编版语文八年级上册
- 思想政治理论课课程建设方案
- 眼影像学教案-眼部影像学解读与诊断
- 《婴幼儿视力发育》课件
- 2023中国电信四川公司校园招聘历年高频难易度、易错点模拟试题(共500题)附带答案详解
- 女性健康生理知识讲座
- 小学语文数字化阅读教学设计
- 中国结完整版本
- 《工程制图》课程教学设计
- 今年上海中考成绩分析报告
- 有效的项目沟通与沟通工具
- 化肥农药减量增效问卷调查表
- 未来教育的发展与改革
评论
0/150
提交评论