收藏 分销(赏)

Delphi程序设计课件全套教程.pptx

上传人:精**** 文档编号:8957437 上传时间:2025-03-09 格式:PPTX 页数:321 大小:2.98MB 下载积分:20 金币
下载 相关 举报
Delphi程序设计课件全套教程.pptx_第1页
第1页 / 共321页
Delphi程序设计课件全套教程.pptx_第2页
第2页 / 共321页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Delphi,程序设计,大连理工大学出版社,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Delphi,程序设计,大连理工大学出版社,Delphi,程序设计,大连理工大学出版社,目录,第一篇 开发基础篇,模块一,Delphi 7,开发环境,模块二,Delphi,的编程语言,模块三 面向对象编程基础,第二篇 应用提高篇,模块四 窗体,模块五 常用组件,模块六 菜单、工具栏和状态栏,模块七 对话框,模块八 图形图像技术,模块九 数据库编程,2,大连理工大学出版社,Delphi,程序设计,模块一,Delphi,7,开发环境,Delphi,是一个集成开发环境(,IDE,),使用的核心是由传统,Pascal,语言发展而来的,Object Pascal,。,Delphi,以图形用户界面为开发环境,透过,IDE,、,VCL,工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。,本模块学习要点:,Delphi,介绍,Delphi 7,集成开发环境,Delphi 7,程序设计过程,3,大连理工大学出版社,Delphi,程序设计,项目一,Delphi,介绍,一、,Delphi,介绍,由,Borland,公司推出的,Delphi,是全新的可视化编程环境,为我们提供了一种方便、快捷的,Windows,应用程序开发工具。它使用了,Microsoft Windows,图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言,(Object-Oriented Language),、当今世界上最快的编译器、最为领先的数据库技术。,Delphi,拥有一个可视化的集成开发环境,(IDE),,采用面向对象的编程语言,Object Pascal,和基于部件的开发结构框架。,Delphi,提供了,500,多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用,Delphi,本身编写自己的部件。,Delphi,程序设计,4,大连理工大学出版社,Delphi,程序设计,大连理工大学出版社,5,主要特点如下:,1,、直接编译生成可执行代码,编译速度快。,2,、提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。,3,、具有可重用性和可扩展性。,4,、具有强大的数据存取功能。,5,、拥有强大的网络开发能力,能够快速的开发,B/S,应用,它内置的,IntraWeb,和,ExpressWeb,使得对于网络的开发效率超过了其他任何的开发工具。,6,、,Delphi,使用独特的,VCL,类库,使得编写出的程序显得条理清晰。,7,、从,Delphi8,开始,Delphi,也支持,.Net,框架下程序开发。,Delphi,程序设计,大连理工大学出版社,6,二、,Delphi,的发展历程,Delphi,是第四代编程语言,是,RAD,(,Rapid Application Development,,快速应用程序开发)工具的代表。从核心上说,,Delphi,是一个,Pascal,编译器。,Delphi,的发展历程:,1995 1.0,支持,16,位,Windows,开发。基于框架(,VCL,)的,可拖曳、可视化的开发环境,。,1996 2.0,以,32,位编译器为核心,支持,C/S,数据库开发。,1997 3.0,语法:加入接口(,Interface,)的机制。,1998 4.0,语法:加入动态数组和方法覆盖等支持。,1999 5.0,增强了,IDE,和调试器,提供了,TeamSource,。简化,Internet,的开发,增强数据库支持,。,2001 6.0,提供了,Web Service,。跨平台的,Kylix 1.0,和,CLX,。,2002 7.0,提供了,.NET,的过渡,增强的,Internet,开发(,Intra Web,),完善数据库支持,增加了,Indy,网路元件和,Rave Report,资料库报表,并且支援,UML,及,XP,的程式制作。,Delphi,程序设计,大连理工大学出版社,7,三、,Delphi,的安装,安装,Delph7,企业版的系统要求:,(,1,),Intel Pentium 166 MHz,或配置更高的处理器;,(,2,),128Mb,以上内存;,(,3,)完全安装企业版大约要占,475Mb,硬盘空间;,(,4,),Microsoft Windows 98,、,2000,、,XP,或更高版本的操作系统平台;,(,5,)此外,还要求系统配有,CD-ROM,驱动器、,VGA,或性能更高的彩色显示器,鼠标等外设。,项目二,Delphi 7,集成开发环境,Delphi,集成开发环境的界面分为以下几大部分,分别是主菜单、工具栏、组件面板,对象树视图,对象观察器,设计视图和代码编辑器。,Delphi,程序设计,8,大连理工大学出版社,Delphi,程序设计,大连理工大学出版社,9,Delphi,程序设计,大连理工大学出版社,10,一、集成开发环境的界面,1,、主窗口,(,1,)系统菜单,系统菜单是下拉式菜单,提供了,Delphi 7,集成开发环境中开发应用程序所需要的各种功能。,(,2,)工具栏,工具栏位于主窗口的左下端,由两排工具按钮组成,这些按钮是系统菜单命令的快捷方式,各种图标直观地表示了它能执行的动作。,(,3,)组件面板,组件面板包含了,Delphi,的可视化组件,例如,按钮、列表框、编辑框等。组件面板由若干组件页组成,利用它来选择需要的组件并将它放到窗体中去。,Delphi,程序设计,大连理工大学出版社,11,2,、设计视图,设计视图是开展大部分设计工作的区域。首次启动,Delphi7,时,系统自动创造建一个普通的应用程序项目,并会创建一个默认窗体,Form1,。,窗体相当于组件的容器,可以把组件放在窗体中,通过鼠标拖动操作来移动组件位置和改变尺寸,可随心所欲地安排它们,以此来开发应用程序的用户界面。,窗体上有网格(,Grids,),放置组件时网格可以用于定位,在程序运行时网格是不可见的。,Delphi,程序设计,大连理工大学出版社,12,3,、代码编辑器(,Code Editor,),在默认情况下,代码编辑器隐藏在设计视图之下,在代码编辑器和设计视图之间进行切换可以按,F12,键。,Delphi7,提供了以下快捷的代码编辑功能,:,(,1,)程序调试功能,(,2,)帮助查询功能,(,3,)代码分析,Delphi,程序设计,大连理工大学出版社,13,二、项目管理器,1,、项目组成,Delphi,为每个项目建立了相当数目的文件。这些文件中,一部分是在设计阶段产生的,如项目文件(,.DPR,)、单元文件(,.PAS,)和窗体文件(,.DFM,)等。还有一些则是在编译阶段产生的,如对象映射文件(,.DSM,)、编译单元文件(,.DCU,)等。,Delphi,程序设计,大连理工大学出版社,14,(,1,)项目文件,项目文件对应用至关重要,由,Delphi,自动建立,一般用户不需要改变它。项目文件是真正意义上的,Pascal,源代码文件,它描述了整个应用程序的结构及启动代码。缺省生成的项目源文件代码如下:,program Project1;,uses,Forms,Unit1 in Unit1.pas Form1;,$R*.res,begin,Application.Initialize;,Application.CreateForm(TForm1,Form1);,Application.Run;,end.,Delphi,程序设计,大连理工大学出版社,15,(,2,)窗体文件,窗体在设计阶段可以用来放置各种组件,在运行阶段是与用户交互的界面。,窗体中的所有信息保存在两个主名相同扩展名不同的文件中,一个是扩展名为,dfm,的窗体文件,另一个是每个窗体对应的同名单元文件。,Delphi,程序设计,大连理工大学出版社,16,(,3,)单元文件,单元文件保存了,Delphi,程序的基本模块,一般的单元文件都与一个窗体对应,包含了窗体及其组件的事件处理程序,在,Delphi,中编写的程序代码,绝大多数被保存在这种文件中,其扩展名为,.pas,。,缺省生成的窗体单元文件的源代码如下:,unit Unit1;/,单元文件的名字,interface /,接口部分的开始,uses /,引用的标准单元文件,Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs;,Type/,类型声明,TForm1=class(TForm),Private/,声明私有成员,Private declarations,Public/,声明公有成员,Public declarations,end;/,结束类型声明,var/,声明变量或类的实例,Form1:TForm1;,implementation/,程序代码实现功能部分的开始,$R*.dfm/,通过编译指令,$R,链接窗体文件,end./,实现部分结束,Delphi,程序设计,大连理工大学出版社,17,三、项目管理器窗口,使用项目管理器窗口可以了解项目的构成,以及方便地对项目进行管理。,选择“,View,”菜单的“,Project Manager,”命令,可以打开项目管理器窗口,“,Project Manager,”窗口,如图所示,它用来管理当前项目中的组成文件。在项目管理器中列出了当前项目的各个单元文件和窗体文件,用户可以对它们进行操作。,Delphi,程序设计,大连理工大学出版社,18,项目管理器窗口由标题栏、工具栏、项目显示窗口和状态栏四部分组成。,标题栏,标题栏列出了项目管理器的英文名称“,Project Manager,”。,工具栏,工具栏中包含一个“,Project Selector,”下拉列表框(从项目中选择需管理的项目),以及,3,个快捷按钮:,New,按钮(往项目中新增项目),,Remove,按钮(从项目中删除选中的项目)和,Activate,按钮(激活项目)。,项目显示窗口,项目管理器根据项目文件中的内容,在下面显示窗口列出了组成项目的所有窗体文件和单元文件(,Files,列)以及它们的路径(,Path,列)。注意:项目管理器只列出,Delphi,自己添加的文件,用户手动添加的文件在项目管理器中得不到反映。,状态栏,状态栏一般缺省为不可见,如果要显示状态栏,可以在窗口中单击右键,打开快捷菜单,从中选取“,Status Bar,”命令。状态栏显示的是项目显示窗口中当前文件的完整路径。,Delphi,程序设计,大连理工大学出版社,19,四、项目管理,1,、给项目添加文件,给项目添加文件可分为两种情况:第一种情况是往项目中添加新的窗体或单元文件,第二种情况是往项目中添加以及存在的文件。对于第一种情况,往项目中添加的新窗体或新单元文件,可以单击,File,菜单中的,New,级联菜单下的,Form,命令或,Unit,命令。,2,、从项目中删除文件,从项目中删除文件后,,Delphi,并没有将文件从硬盘上删除,只是修改了项目文件中的,uses,语句,将要删除的文件从该语句中去掉而已。如果要从项目中删除文件,可执行如下操作。,(,1,)单击,Project,菜单中的,Remove From Project,命令,或单击工具栏上,Remove File From Project,按钮,打开,Remove From Project,对话框;,(,2,)选择要删除的文件;,(,3,)单击,OK,按钮。,Delphi,程序设计,大连理工大学出版社,20,3,、查看文件,如果要查看项目中的某窗体或文件的源代码,根据需要,可以采取如下方法。,如果要查看某个单元文件的源代码,可以单击,View,菜单的,Units,命令或工具栏中的,ViewUnits,按钮,打开,View Unit,对话框,然后从列表框中选择要查看的单元文件,再单击,OK,按钮。,如果要查看某个窗体,可以单击,View,菜单的,Forms,命令或工具栏中的,View Form,按钮,打开,View Form,对话框,然后从列表框中选择要查看的窗体,再单击,OK,按钮。,4,、保存项目及其文件,Delphi,提供了许多保存命令,用户可以根据需要来选择使用。,Delphi,程序设计,大连理工大学出版社,21,五、项目编译和运行,运行应用程序前,首先得对应用程序进行编译。,Delphi,提供了多种编译方式,供用户在不同情况下选用。,1,、编译链接,单击,Project,菜单的,Compile,项目名命令,将编译当前项目自上一次编译以来修改过的文件,并将项目中所有文件链接成可执行文件,该命令的热键为,Ctrl+F9,。,项目的编译过程为:,Delphi,首先将项目中各单元文件编译成以“,.DCU,”为扩展名的编译单元文件,然后开始编译项目文件,最后将编译好的文件链接成可执行文件。,Delphi,程序设计,大连理工大学出版社,22,2,、重建项目,重建项目的意思是指重新编译项目中所有的文件,包括单元文件和项目文件,并重新建立生成可执行文件所需的一系列文件。当用户不能确定是否有文件被遗漏编译,或想更新编译单元文件(,.DCU,)和可执行文件(,.EXE,)时,可采取这一种编译模式。,如果要重建项目,选择,Project,菜单中的,Build,项目名命令即可。,3,、只编译文件,所谓只编译文件,是指只对项目中的文件进行编译,而不链接它们。这种编译模式通常用于检查文件中的语法错误。,如果只编译文件,可选择,Project,菜单中的,Syntax check,项目名命令,4,、查看编译信息,编译完当前项目后,还可以单击,Project,菜单中的,Information for,项目名命令,打开,Information,消息框,来查看编译后的信息,Delphi,程序设计,大连理工大学出版社,23,5,、编译所有项目,对于有多个项目或项目组的应用程序,经常一次编译并链接所有项目,从而一次性生成可执行文件。,要编译所有项目,单击,Project,菜单的,Compile All Projects,命令即可。,6,、重建所有项目,重建所有项目本质上与重建项目并没有什么不同,只不过是针对多个项目操作而已。,重建所有项目使用的命令是,Project,菜单的,Build All Projects,命令。,7,、运行,若程序没有语法错误,编译后可直接在,Delphi,集成环境中运行,运行方法是使用,Run,菜单的,Run,命令,或单击工具栏中的,Run,按钮,或直接按,F9,功能键。,项目三,Delphi 7,程序设计过程,【,任务一,】,编写一个控制台程序,显示,“Hello World!”,。运行时显示的界面如图所示。,Delphi,程序设计,24,大连理工大学出版社,Delphi,程序设计,大连理工大学出版社,25,【,实现步骤,】,启动,Delphi7,,关闭自动生成的窗体程序;,Delphi,程序设计,大连理工大学出版社,26,2.,选择菜单,File,New,Others,,在弹出的对话框中选择,Console Application,,,Delphi,程序设计,大连理工大学出版社,27,3,、在代码编辑器中编写代码,,4,、,Shift+F9,编译代码,没有错误后按,F9,运行程序。,Delphi,程序设计,大连理工大学出版社,28,【,任务二,】,编写一个窗体应用程序,在窗体中显示,“Hello World!”,,当点击其下的按钮时可以交替显示和隐藏,“Hello World!”,。运行时显示的界面如图。,Delphi,程序设计,大连理工大学出版社,29,【,实现步骤,】,1,、启动,Delphi 7,2,、新建应用程序,3,、从组件面板上选择,Label,,,Button,组件,定制窗体,Delphi,程序设计,大连理工大学出版社,30,属,性,属,性,值,说,明,Alignment,taCenter,设置标签上显示的文字水平居中,AutoSize,False,使标签不根据,Caption,的长度自动改变宽度。,Caption,Hello,World!,在标签上显示的字符串,Font,字体:,Arial,,大小:,36,设置标签显示的文字效果,Name,Label1,为标签对象指定名称,便于在程序中调用。,(,1,)标签组件的属性设置,见表,1-5,(,2,)修改,Form1,的,Caption,属性为“,Hello”,表,1-5,标签组件的属性设置,Delphi,程序设计,大连理工大学出版社,31,(,3,)修改,Button1,的,Caption,属性为“显示,/,隐藏”,Delphi,程序设计,大连理工大学出版社,32,4,、编写代码,双击,Button,组件,进入,TForm1.Button1Click,,开始编写代码,procedure TForm1.Button1Click(Sender:TObject);,begin,Label1.Visible:=not Label1.Visible;,end;,5,、运行程序,模块二,Delphi,的编程语言,Delphi,开发应用程序的实质就是编写功能代码,而编写代码的基础是掌握,Object Pascal,语言。对象,Pascal,程序设计语言是在,Pascal,语言的基础上发展起来的,继承了,Pascal,语言语法严谨、数据结构丰富等优点,同时融入了面向对象的语法要素,成为了一个完善的面向对象编程语言。,Delphi,并不是一种计算机语言,而是一个基于对象,Pascal,语言的,Windows,应用程序开发工具系统。因此,要能够使用,Delphi,开发出一个完整的应用程序,必须熟悉和掌握对象,Pascal,语言的语法和使用方法。,本模块学习要点:,保留字和标识符,常量、变量、数据类型,程序语句,过程与函数,Delphi,程序设计,33,大连理工大学出版社,项目一,保留字和标识符,一、标识符,标识符用作常量、变量、数据类型、过程、函数、单元及程序等的名称。标识符由一个或多个,ASCII,码字符序列组成,定义标识的规则如下:,(,1,)标识符由字母、数字或下划线组成;,(,2,)标识符的第一个字符必须是字母或下划线;,(,3,)标识符的长度不应超过,255,个字符,超过,255,个字符只有前,255,个字符有效;,(,4,)不能将关键字(保留字)用作标识符;,(,5,)标识符不区分大、小写。,例外,:控件包中的,Register,过程必须以大写字母,R,开始(因为需要与,C+Builder,兼容),一些,API,函数调用参数也必须按要求大小写。,Delphi,程序设计,34,大连理工大学出版社,二、保留字,保留字又称为关键字,它在,Delphi,语言中有着特殊含义。保留字不能用作标识符,在实际编程中不应该把任何保留字用作标识符,见表,Delphi,程序设计,35,大连理工大学出版社,and,array,As,asm,begin,Case,Class,Const,constructor,destructor,Dispinterface,Div,Do,downto,Else,End,except,exports,File,Finalization,Finally,for,function,Goto,If,Implementation,In,inherited,initialization,inline,Interface,is,label,library,Mod,Nil,not,object,Of,or,out,packed,procedure,program,property,raise,record,repeat,resourcestring,set,Shl,shr,string,then,threadvar,To,try,type,unit,until,uses,var,while,With,xor,三、注释,为了使程序更加易读,通常,我们要为程序添加注释。对程序模块、语句或命令作文字解释,运行时,这些文字不会作为命令的一部分而被执行,因而不会影响原来的程序。有时,在调试的过程中,也可以用注释的方法对部分命令作暂时的“删除”,以缩小调试范围。,在编写自己的,Object Pascal,程序时,要注意程序的可读性。在程序中选择合适的缩排、大小写风格,并在需要时将程序代码分行,会使得程序代码能够很容易地被自己和他人读懂。一般程序员都有这样的体验:如果不给程序加上适当的注解,一段时间后,自己也难以理清程序的流程。给程序及时地加上注释是良好的编程习惯。,Delphi,程序设计,36,大连理工大学出版社,对象,Pascal,语言中的注释有下面三种形式:,花括号“,”注释:组合符号“,”与“,”的成对使用表示它们之间的内容为注释部分。,圆括号及星号对“(,*,*,)”注释:组合符号“,(*,”与“,*),”的成对使用表示它们之间的内容为注释部分。,双斜杠“,/,”注释:符号“,/,”的单个使用表示所在行的该符号之后的内容为注释部分。,第一种注释方式较简略,使用也较为普遍;第二种方式在欧洲使用较广;第三种方式的注释是从,C+,借用来的,只在,32,位版本的,Delphi,中可用,它在给一行代码加短注释时非常有用。,Delphi,程序设计,37,大连理工大学出版社,例外,:如果在注释符“,”或“(,*,”后紧跟着的是一个美元符号“,$,”,表示该句是一个编译器指令,它与普通的注释不同,通常用来对编译过程进行设置。,注意点,:,注释符“,”与“,”、“,(*,”与“,*),”在使用时不支持注释的嵌套,而且必须成对使用。,不允许形如,或,(*,(*,*),*),,但允许形如,(*,*),的结构。,对于单行和少量几行的注释使用符号“,/,”,对于大块注释使用“,”和“,”或“,(*,”和“,*),”,Delphi,程序设计,38,大连理工大学出版社,四、控制台程序中的屏幕输入和输出,在介绍可视化编程方法前,我们采用,read,、,write,来进行屏幕输入、输出。,1,输入语句格式,read();,或,readln();,注意,:变量表里面变量与变量之间用逗号隔开。,readln,表示下一个语句将从下一行开始操作。输入时,整型或实型用空格或回车隔开,字符型之间无需分隔,一个接一个输入。,Delphi,程序设计,39,大连理工大学出版社,2,输出语句格式,write();,或,writeln();,注意,:变量表里面变量与变量之间用逗号隔开。,writeln,表示从下一行开始显示。变量表中可对,real,或,integer,类型的数据限定显示宽度。如:,write(a=,a:2:0),,即指定,a,显示宽度为,2,位,小数,0,位。,Delphi,程序设计,40,大连理工大学出版社,【,任务一,】,由于,Delphi,集成开发环境中的代码编辑器在显示不同类型的代码时会通过使用不同的颜色来加以区别,所以在编辑的过程中,只要注意文件中代码的颜色,一般就不会错误地使用注释符了。上面的注释文字“(,*,字符串,1*,)”实际上位于语句,writeln,(,String0+String1,),;,之间,但是对编译结果没有影响。因为在编译的时候,编译器会忽略所有的注释。,Delphi,程序设计,41,大连理工大学出版社,项目二,常量、变量和数据类型,一、常量,对于在程序运行期间保持不变的数据,,Delphi,允许通过声明常量来调用。声明常量不必指定数据类型,但需指定常量所代表的数据的值,编译器会根据所赋初值自动选用合适的数据类型。,常量的声明格式如下:,CONST,常量名,=,表达式,;,例如:,CONST,Thousand=1000;,Pi=3.14159;,ErrMessage=,类型错误,;,PagesOfDelphi=278;/delphi,书的页数,ComputerRoomNum=3;/,本学期机房号码,使用常量定义的意义:减少常量值差错机会与修改程序的工作量,并提高程序的可读性。,Delphi,程序设计,42,大连理工大学出版社,二、变量,变量用于在程序执行过程临时存放数据,其值可以被改变。变量分全局变量和局部变量。,变量说明的一般形式为:,VAR,变量名列表:类型名,;,例如:,VAR,iCount:Integer;/,说明了一个整型变量,bCorrect:Boolean;/,说明了一个布尔型变量,cX,,,cY:Char;/,说明了两个字符型变量,变量的类型被指定后,只能对变量执行该变量类型支持的操作。,Delphi,程序设计,43,大连理工大学出版社,三、数据类型,类型大致可以分为简单类型、字符串类型、结构类型、指针类型、过程类型和变体类型。简单类型又分为有序类型和实数类型。,有序类型定义一个有次序的数值集合,除了它的第一个值以外,其它每个值都有一个唯一的前驱值;除了最后一个外,其它每个值都有一个唯一的后继值。并且,每个值都有一个序数决定它在这个类型中的位置,Delphi,程序设计,44,大连理工大学出版社,有符号数,无符号数,8,位,ShortInt,Byte,16,位,SmallInt,Word,32,位,LongIntInteger,(通用),LongWordCardinal,(通用),64,位,Int64,Delphi,程序设计,45,大连理工大学出版社,1,简单类型,(,1,)整数,(,2,)、字符,Delphi,程序设计,46,大连理工大学出版社,类 型,名,称,字节数,取,值,范,围,AnsiChar,Ansi,字符型,1,扩展,ANSI,字符集,WideChar,宽字符型,2,UniCode,字符集,Char,字符型,1(2),扩展,ANSI,字符集,【,任务一,】,将整数值为,0127,的字符在屏幕上输出,Delphi,程序设计,47,大连理工大学出版社,(,3,)、布尔,Delphi,程序设计,48,大连理工大学出版社,类 型,名,称,字节数,取,值,ByteBool,字节布尔型,1,0,(,False,)或非,0,(,True,),WordBool,字布尔型,2,0,(,False,)或非,0,(,True,),LongBool,长布尔型,4,0,(,False,)或非,0,(,True,),Boolean,布尔型,1,False,或,True,(,4,)、枚举类型,枚举类型,(enumerated),是一种用户自定义类型,它的定义是由一组有序的标识符组成。类型的声明使用保留字,Type,type,Align=(left,center,right);/,类型定义,Var MyAlign:Align /,变量声明,也可以不预先用,type,定义,直接按如下方法定义枚举类型变量,var MyAlign:(left,center,right),一般用到如下场合:某种变量的值可以确定范围,即值的几种可能性均能确定,对齐方式若确定只有左对齐,居中对齐,右对齐三种,即可定义为枚举类型,Delphi,程序设计,49,大连理工大学出版社,(,5,)、子界类型,子界类型,(subrange),为某个有序类型的子集,子界类型也是一种用户自定义类型,它规定了值域的上界和下界及取值的类型。,type,Age=1.200;/,类型定义,Var MyAge:Age /,变量声明,注意,:,上界和下界必须属同一顺序类型,上界序号必须大于下界序号。,Age=0.5.200,是错误的,子界类型的上、下界的类型定义了子界的基类型,,1.200,基类型为整数,,a.z,基类型为字符型,如果子界类型的基类型是枚举类型,则应该在定义子界类型之前先定义枚举类型,Delphi,程序设计,50,大连理工大学出版社,(,6,)实数类型,实数类型定义了一类可以用浮点数表示的数字。,用处:表示连续量,定义:,var x,y:double;,常量表示:,34.56,;,0.23,;,.23,;,1.2E-3,;,Delphi,程序设计,51,大连理工大学出版社,2,、字符串类型,和传统,Pascal,不同,对象,Pascal,专门提供了预定义的字符串数据类型,可以方便的表示字符串,实现对字符串存储、处理等操作。一般情况下,当我们声明一个变量为字符串类型时使用,String,保留字。缺省时,,String,类型就是,AnsiString,类型。,Delphi,共有三种字符串类型:,(1)ShortString,(2)ANSIString,(3)WideString,Delphi,程序设计,52,大连理工大学出版社,3,、结构类型,结构类型有下面的几类:集合类型(,set,)、数组类型(,array,)、记录类型(,record,)、文件类型(,file,)、类类型(,class,)、类引用类型(,class reference,)、接口类型(,interface,),集合类型,一个集合由集合成员组成,集合的成员元素是无序的。集合的另一个特点是无重复元素。集合操作的重点是判定一个元素是否属于该集合,而不是元素在集合的次序和出现的频率。集合类型,(set),的类型定义方法如下:,type,类型名称,=set of,元素类型,注意,:,Object Pascal,中规定了基类型只能是不超过,256,个有序值的集合,集合的元素的序数值必须介于,0,和,255,之间。,Delphi,程序设计,53,大连理工大学出版社,【,任务二,】,判断以下集合定义是否正确,并说明原因,type,TSetA=set of Integer;/,错误,TSetB=set of 255.300;/,错误,TSetC=set of WideChar;/,错误,TsetD=set of 10.50;/,正确,TsetE=set of char;/,正确,Delphi,程序设计,54,大连理工大学出版社,(,2,)数组类型,数组类型数据表示的是同种类型数据的集合。数组类型的数据是排列有序的,每个数据元素都有一个唯一的索引号。与集合类型不同的是,数组类型的数据可以重复。数组类型分为静态数组和动态数组。,静态数组,静态数组就是传统的,Pascal,中的数组类型。在程序初始化时给静态数组分配内存空间,所以静态数组必须具有确定的大小,其元素的数据类型也必须是确定的。,定义静态数组的语法形式如下:,type,数组类型名,=array,下标类型,of,基类型,/,一维数组,或,数组类型名,=array,下标类型,1,,,,下标类型,n of,基类型,/,多维数组,数组类型标识符号,=array,下标类型,1,,,,下标类型,n of,基类型,;,其中,下标类型是有序类型,下标类型通常是以,Integer,为子界的,也可以是其它有序类型的子界;基类型声明元素的数据类型;数组由同一类型的数据元素组成。,Delphi,程序设计,55,大连理工大学出版社,【,任务三,】,定义如下的数组类型,type,Tarr1=Array 1.10 of Integer;,Tarr2=Array 1.3,1.5 of Char;,var,a:Tarr1;/,声明变量,a,是,Tarr1,类型数组,b:Tarr2;/,声明变量,b,是,Tarr2,类型数组,也可以声明变量时直接定义数组的类型,如:,var a:Array 1.10 of Integer;,使用数组时,经常需要编写的程序代码就是访问数组中的元素。数组元素的访问是通过数组名后面加上方括号和下标值来访问的。如:,a1:=10;,Delphi,程序设计,56,大连理工大学出版社,【,任务四,】,定义如下的数组类型,做相应的计算,并最终打印出数组内容,Delphi,程序设计,57,大连理工大学出版社,动态数组,在定义时并没有确定数组的大小或长度,而是在访问之前用,SetLength,过程为数组动态或重新分配其存储空间。,定义动态数组的语法形式如下:,Type,数组类型名,=array of,基类型;,/,一维数组,数组类型名,=array of array of,。,array of,基类型,/,多维数组,Var,数组类型标识符:,array of baseType;,例如:,var DynArr,:,array of Integer;,声明,DynArr,为元素是整型的动态数组。,也可以先定义类型,再声明变量,如:,type,TdynIntArr=array of integer;,var,DynArr:TdynIntArr;,语句,SetLength(DynIntArr,10);,为动态数组,DynIntArr,分配,10,个元素的存储空间,下标从,0,到,9,(动态数组的下标总是从,0,开始)。如要释放动态数组占用的存储空间,可以将,nil,赋值给该动态数组变量,或调用过程,SetLength(DyIntArr,0),实现。,Delphi,程序设计,58,大连理工大学出版社,(,3,)记录类型,描述一组不同类型的数据元素集合,每个数据元素称为,“,域,”,。在定义一个记录类型时,需要指定每个数据域的数据类型。定义记录类型的语法如下:,type,记录类型标识符,=record,域,1:,类型,1;,域,2:,类型,2;,.,域,n:,类型,n;,end;,Delphi,程序设计,59,大连理工大学出版社,【,任务五,】,记录类型的定义与使用,,with,语句的使用。,操作步骤,1,、在控制台程序中编写代码如下,Program Project2_3;,$APPTYPE CONSOLE,type,TDateRec=record/,记录类型的定义,Year:integer;,Month:(Jan,Feb,Mar,Apr,May,Jun,Aug,Sep,Oct,Nov,Dec);,Day:1.31;,End;,Delphi,程序设计,60,大连理工大学出版社,Var,Record1,Record2,Record3:TDateRec;/,记录类型变量的声明,Begin,Record1.Year:=1975;/,给记录中的域赋值,Record1.Month:=Sep;,Record1.Day:=13;,With Record2 do/,使用,with,语句可以简化代码的输入,Begin,Year:=1973;/,相当于,Record2.Year:=1973,Month:=Jul;,Day:=21;,End;,Record3:=Record1;/,对记录进行复制,End;,Delphi,程序设计,61,大连理工大学出版社,(,4,)文件类型,Type,文件类型名,=file of,元素类型;,元素类型可以是整数、实数等简单类型,也可以是记录类型这样的复杂类型,例如,Type,Tstudent=Record,Name:String8;,Age:Byte;,End;,StudentFile:File of Tstudent;,如果元素类型被忽略,则是无类型文件,直接用底层的,IO,函数打开文件,并把它当作二进制文件处理。,TextFile,是预定义的类型,表示一个文本文件。,Delphi,程序设计,62,大连理工大学出版社,(,5,)指针类型,指针类型,(pointer),的变量指向的是内存空间的地址。通常我们真正关心的是某一个地址存放的数据,通过指针可以对所指地址中的数据进行操作。,指针类型的定义形式如下:,type,指针类型名,=,类型,;,其中,指针类型名为任意合法的标识符。“,”放在类型的前面,表明声明的类型为一个指针类型。“,”后面紧跟的类型确定了指针所指向的类型,可以是简单类型。如:整型、实型或枚举型等,也可以是结构类型,如:数组、集合或记录等等。,一旦定义了指针
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服