Delphi程序设计完整版课件全套ppt教程(最新).pptx
Delphi程序设计程序设计大连理工大学出版社目录第一篇 开发基础篇模块一 Delphi7开发环境模块二 Delphi的编程语言模块三 面向对象编程基础第二篇 应用提高篇模块四 窗体模块五 常用组件模块六 菜单、工具栏和状态栏模块七 对话框模块八 图形图像技术模块九 数据库编程2大连理工大学出版社 Delphi程序设计模块一 Delphi 7 开发环境Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的ObjectPascal。Delphi以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。本模块学习要点:1.Delphi介绍2.Delphi7集成开发环境3.Delphi7程序设计过程3大连理工大学出版社 Delphi程序设计项目一 Delphi介绍一、一、Delphi介绍介绍由Borland公司推出的Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-OrientedLanguage)、当今世界上最快的编译器、最为领先的数据库技术。Delphi拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。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(RapidApplicationDevelopment,快速应用程序开发)工具的代表。从核心上说,Delphi是一个Pascal编译器。Delphi的发展历程:19951.0支持16位Windows开发。基于框架(VCL)的,可拖曳、可视化的开发环境。19962.0以32位编译器为核心,支持C/S数据库开发。19973.0语法:加入接口(Interface)的机制。19984.0语法:加入动态数组和方法覆盖等支持。19995.0增强了IDE和调试器,提供了TeamSource。简化Internet的开发,增强数据库支持。20016.0提供了WebService。跨平台的Kylix1.0和CLX。20027.0提供了.NET的过渡,增强的Internet开发(IntraWeb),完善数据库支持,增加了Indy网路元件和RaveReport资料库报表,并且支援UML及XP的程式制作。Delphi程序设计大连理工大学出版社7三、三、Delphi的安装的安装安装Delph7企业版的系统要求:(1)IntelPentium166MHz或配置更高的处理器;(2)128Mb以上内存;(3)完全安装企业版大约要占475Mb硬盘空间;(4)MicrosoftWindows98、2000、XP或更高版本的操作系统平台;(5)此外,还要求系统配有CD-ROM驱动器、VGA或性能更高的彩色显示器,鼠标等外设。项目二 Delphi 7集成开发环境Delphi集成开发环境的界面分为以下几大部分,分别是主菜单、工具栏、组件面板,对象树视图,对象观察器,设计视图和代码编辑器。Delphi程序设计8大连理工大学出版社 Delphi程序设计大连理工大学出版社9 Delphi程序设计大连理工大学出版社10一、集成开发环境的界面一、集成开发环境的界面1、主窗口(1)系统菜单系统菜单是下拉式菜单,提供了Delphi7集成开发环境中开发应用程序所需要的各种功能。(2)工具栏工具栏位于主窗口的左下端,由两排工具按钮组成,这些按钮是系统菜单命令的快捷方式,各种图标直观地表示了它能执行的动作。(3)组件面板组件面板包含了Delphi的可视化组件,例如,按钮、列表框、编辑框等。组件面板由若干组件页组成,利用它来选择需要的组件并将它放到窗体中去。Delphi程序设计大连理工大学出版社112、设计视图设计视图是开展大部分设计工作的区域。首次启动Delphi7时,系统自动创造建一个普通的应用程序项目,并会创建一个默认窗体Form1。窗体相当于组件的容器,可以把组件放在窗体中,通过鼠标拖动操作来移动组件位置和改变尺寸,可随心所欲地安排它们,以此来开发应用程序的用户界面。窗体上有网格(Grids),放置组件时网格可以用于定位,在程序运行时网格是不可见的。Delphi程序设计大连理工大学出版社123、代码编辑器(CodeEditor)在默认情况下,代码编辑器隐藏在设计视图之下,在代码编辑器和设计视图之间进行切换可以按F12键。Delphi7提供了以下快捷的代码编辑功能:(1)程序调试功能(2)帮助查询功能(3)代码分析 Delphi程序设计大连理工大学出版社13二、项目管理器二、项目管理器1、项目组成Delphi为每个项目建立了相当数目的文件。这些文件中,一部分是在设计阶段产生的,如项目文件(.DPR)、单元文件(.PAS)和窗体文件(.DFM)等。还有一些则是在编译阶段产生的,如对象映射文件(.DSM)、编译单元文件(.DCU)等。Delphi程序设计大连理工大学出版社14(1)项目文件项目文件对应用至关重要,由Delphi自动建立,一般用户不需要改变它。项目文件是真正意义上的Pascal源代码文件,它描述了整个应用程序的结构及启动代码。缺省生成的项目源文件代码如下:programProject1;usesForms,Unit1inUnit1.pasForm1;$R*.resbeginApplication.Initialize;Application.CreateForm(TForm1,Form1);Application.Run;end.Delphi程序设计大连理工大学出版社15(2)窗体文件窗体在设计阶段可以用来放置各种组件,在运行阶段是与用户交互的界面。窗体中的所有信息保存在两个主名相同扩展名不同的文件中,一个是扩展名为dfm的窗体文件,另一个是每个窗体对应的同名单元文件。Delphi程序设计大连理工大学出版社16(3)单元文件单元文件保存了Delphi程序的基本模块,一般的单元文件都与一个窗体对应,包含了窗体及其组件的事件处理程序,在Delphi中编写的程序代码,绝大多数被保存在这种文件中,其扩展名为.pas。缺省生成的窗体单元文件的源代码如下:unitUnit1;/单元文件的名字interface/接口部分的开始uses/引用的标准单元文件Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs;Type/类型声明TForm1=class(TForm)Private/声明私有成员PrivatedeclarationsPublic/声明公有成员Publicdeclarationsend;/结束类型声明var/声明变量或类的实例Form1:TForm1;implementation/程序代码实现功能部分的开始$R*.dfm/通过编译指令$R链接窗体文件end./实现部分结束 Delphi程序设计大连理工大学出版社17三、项目管理器窗口三、项目管理器窗口使用项目管理器窗口可以了解项目的构成,以及方便地对项目进行管理。选择“View”菜单的“ProjectManager”命令,可以打开项目管理器窗口“ProjectManager”窗口,如图所示,它用来管理当前项目中的组成文件。在项目管理器中列出了当前项目的各个单元文件和窗体文件,用户可以对它们进行操作。Delphi程序设计大连理工大学出版社18项目管理器窗口由标题栏、工具栏、项目显示窗口和状态栏四部分组成。1.标题栏标题栏列出了项目管理器的英文名称“ProjectManager”。2.工具栏工具栏中包含一个“ProjectSelector”下拉列表框(从项目中选择需管理的项目),以及3个快捷按钮:New按钮(往项目中新增项目),Remove按钮(从项目中删除选中的项目)和Activate按钮(激活项目)。3.项目显示窗口项目管理器根据项目文件中的内容,在下面显示窗口列出了组成项目的所有窗体文件和单元文件(Files列)以及它们的路径(Path列)。注意:项目管理器只列出Delphi自己添加的文件,用户手动添加的文件在项目管理器中得不到反映。4.状态栏状态栏一般缺省为不可见,如果要显示状态栏,可以在窗口中单击右键,打开快捷菜单,从中选取“StatusBar”命令。状态栏显示的是项目显示窗口中当前文件的完整路径。Delphi程序设计大连理工大学出版社19四、项目管理四、项目管理1、给项目添加文件给项目添加文件可分为两种情况:第一种情况是往项目中添加新的窗体或单元文件,第二种情况是往项目中添加以及存在的文件。对于第一种情况,往项目中添加的新窗体或新单元文件,可以单击File菜单中的New级联菜单下的Form命令或Unit命令。2、从项目中删除文件从项目中删除文件后,Delphi并没有将文件从硬盘上删除,只是修改了项目文件中的uses语句,将要删除的文件从该语句中去掉而已。如果要从项目中删除文件,可执行如下操作。(1)单击Project菜单中的RemoveFromProject命令,或单击工具栏上RemoveFileFromProject按钮,打开RemoveFromProject对话框;(2)选择要删除的文件;(3)单击OK按钮。Delphi程序设计大连理工大学出版社203、查看文件如果要查看项目中的某窗体或文件的源代码,根据需要,可以采取如下方法。如果要查看某个单元文件的源代码,可以单击View菜单的Units命令或工具栏中的ViewUnits按钮,打开ViewUnit对话框,然后从列表框中选择要查看的单元文件,再单击OK按钮。如果要查看某个窗体,可以单击View菜单的Forms命令或工具栏中的ViewForm按钮,打开ViewForm对话框,然后从列表框中选择要查看的窗体,再单击OK按钮。4、保存项目及其文件Delphi提供了许多保存命令,用户可以根据需要来选择使用。Delphi程序设计大连理工大学出版社21五、项目编译和运行五、项目编译和运行运行应用程序前,首先得对应用程序进行编译。Delphi提供了多种编译方式,供用户在不同情况下选用。1、编译链接单击Project菜单的Compile项目名命令,将编译当前项目自上一次编译以来修改过的文件,并将项目中所有文件链接成可执行文件,该命令的热键为Ctrl+F9。项目的编译过程为:Delphi首先将项目中各单元文件编译成以“.DCU”为扩展名的编译单元文件,然后开始编译项目文件,最后将编译好的文件链接成可执行文件。Delphi程序设计大连理工大学出版社222、重建项目重建项目的意思是指重新编译项目中所有的文件,包括单元文件和项目文件,并重新建立生成可执行文件所需的一系列文件。当用户不能确定是否有文件被遗漏编译,或想更新编译单元文件(.DCU)和可执行文件(.EXE)时,可采取这一种编译模式。如果要重建项目,选择Project菜单中的Build项目名命令即可。3、只编译文件所谓只编译文件,是指只对项目中的文件进行编译,而不链接它们。这种编译模式通常用于检查文件中的语法错误。如果只编译文件,可选择Project菜单中的Syntaxcheck项目名命令4、查看编译信息编译完当前项目后,还可以单击Project菜单中的Informationfor项目名命令,打开Information消息框,来查看编译后的信息 Delphi程序设计大连理工大学出版社235、编译所有项目对于有多个项目或项目组的应用程序,经常一次编译并链接所有项目,从而一次性生成可执行文件。要编译所有项目,单击Project菜单的CompileAllProjects命令即可。6、重建所有项目重建所有项目本质上与重建项目并没有什么不同,只不过是针对多个项目操作而已。重建所有项目使用的命令是Project菜单的BuildAllProjects命令。7、运行若程序没有语法错误,编译后可直接在Delphi集成环境中运行,运行方法是使用Run菜单的Run命令,或单击工具栏中的Run按钮,或直接按F9功能键。项目三 Delphi 7程序设计过程【任务一任务一】编写一个控制台程序,显示“HelloWorld!”。运行时显示的界面如图所示。Delphi程序设计24大连理工大学出版社 Delphi程序设计大连理工大学出版社25【实现步骤】1.启动Delphi7,关闭自动生成的窗体程序;Delphi程序设计大连理工大学出版社262.选择菜单FileNewOthers,在弹出的对话框中选择ConsoleApplication,Delphi程序设计大连理工大学出版社273、在代码编辑器中编写代码,4、Shift+F9编译代码,没有错误后按F9运行程序。Delphi程序设计大连理工大学出版社28【任务二任务二】编写一个窗体应用程序,在窗体中显示“HelloWorld!”,当点击其下的按钮时可以交替显示和隐藏“HelloWorld!”。运行时显示的界面如图。Delphi程序设计大连理工大学出版社29【实现步骤】1、启动Delphi72、新建应用程序3、从组件面板上选择Label,Button组件,定制窗体 Delphi程序设计大连理工大学出版社30属 性属 性 值说 明AlignmenttaCenter设置标签上显示的文字水平居中AutoSizeFalse使标签不根据Caption的长度自动改变宽度。CaptionHello,World!在标签上显示的字符串Font字体:Arial,大小:36设置标签显示的文字效果NameLabel1为标签对象指定名称,便于在程序中调用。(1)标签组件的属性设置,见表1-5(2)修改Form1的Caption属性为“Hello”表表 1-5 标签组件的属性设置标签组件的属性设置 Delphi程序设计大连理工大学出版社31(3)修改Button1的Caption属性为“显示/隐藏”Delphi程序设计大连理工大学出版社324、编写代码双击Button组件,进入TForm1.Button1Click,开始编写代码procedureTForm1.Button1Click(Sender:TObject);beginLabel1.Visible:=notLabel1.Visible;end;5、运行程序模块二 Delphi 的编程语言Delphi开发应用程序的实质就是编写功能代码,而编写代码的基础是掌握ObjectPascal语言。对象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大连理工大学出版社andarrayAsasmbeginCaseClassConstconstructordestructorDispinterfaceDivDodowntoElseEndexceptexportsFileFinalizationFinallyforfunctionGotoIfImplementationIninheritedinitializationinlineInterfaceislabellibraryModNilnotobjectOforoutpackedprocedureprogrampropertyraiserecordrepeatresourcestringsetShlshrstringthenthreadvarTotrytypeunituntilusesvarwhileWithxor三、注释三、注释为了使程序更加易读,通常,我们要为程序添加注释。对程序模块、语句或命令作文字解释,运行时,这些文字不会作为命令的一部分而被执行,因而不会影响原来的程序。有时,在调试的过程中,也可以用注释的方法对部分命令作暂时的“删除”,以缩小调试范围。在编写自己的ObjectPascal程序时,要注意程序的可读性。在程序中选择合适的缩排、大小写风格,并在需要时将程序代码分行,会使得程序代码能够很容易地被自己和他人读懂。一般程序员都有这样的体验:如果不给程序加上适当的注解,一段时间后,自己也难以理清程序的流程。给程序及时地加上注释是良好的编程习惯。Delphi程序设计36大连理工大学出版社对象Pascal语言中的注释有下面三种形式:1.花括号“”注释:组合符号“”与“”的成对使用表示它们之间的内容为注释部分。2.圆括号及星号对“(*)”注释:组合符号“(*”与“*)”的成对使用表示它们之间的内容为注释部分。3.双斜杠“/”注释:符号“/”的单个使用表示所在行的该符号之后的内容为注释部分。第一种注释方式较简略,使用也较为普遍;第二种方式在欧洲使用较广;第三种方式的注释是从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常量名=表达式;例如:CONSTThousand=1000;Pi=3.14159;ErrMessage=类型错误;PagesOfDelphi=278;/delphi书的页数ComputerRoomNum=3;/本学期机房号码使用常量定义的意义:减少常量值差错机会与修改程序的工作量,并提使用常量定义的意义:减少常量值差错机会与修改程序的工作量,并提高程序的可读性。高程序的可读性。Delphi程序设计42大连理工大学出版社二、变量二、变量变量用于在程序执行过程临时存放数据,其值可以被改变。变量分全局变量和局部变量。变量说明的一般形式为:VAR变量名列表:类型名;例如:VARiCount:Integer;/说明了一个整型变量bCorrect:Boolean;/说明了一个布尔型变量cX,cY:Char;/说明了两个字符型变量变量的类型被指定后,只能对变量执行该变量类型支持的操作。Delphi程序设计43大连理工大学出版社三、数据类型三、数据类型类型大致可以分为简单类型、字符串类型、结构类型、指针类型、过程类型和变体类型。简单类型又分为有序类型和实数类型。有序类型定义一个有次序的数值集合,除了它的第一个值以外,其它每个值都有一个唯一的前驱值;除了最后一个外,其它每个值都有一个唯一的后继值。并且,每个值都有一个序数决定它在这个类型中的位置 Delphi程序设计44大连理工大学出版社有符号数 无符号数 8位 ShortIntByte16位 SmallIntWord32位 LongIntInteger(通用)LongWordCardinal(通用)64位 Int64 Delphi程序设计45大连理工大学出版社1简单类型简单类型(1)整数)整数(2)、字符)、字符 Delphi程序设计46大连理工大学出版社类 型 名 称 字节数 取 值 范 围 AnsiCharAnsi字符型 1扩展ANSI字符集 WideChar宽字符型 2UniCode字符集 Char字符型 1(2)扩展ANSI字符集【任务一任务一】将整数值为0127的字符在屏幕上输出 Delphi程序设计47大连理工大学出版社(3)、布尔)、布尔 Delphi程序设计48大连理工大学出版社类 型 名 称 字节数 取 值 ByteBool字节布尔型 10(False)或非0(True)WordBool字布尔型 20(False)或非0(True)LongBool长布尔型 40(False)或非0(True)Boolean布尔型 1False或True(4)、枚举类型)、枚举类型枚举类型(enumerated)是一种用户自定义类型,它的定义是由一组有序的标识符组成。类型的声明使用保留字TypetypeAlign=(left,center,right);/类型定义VarMyAlign:Align/变量声明也可以不预先用type定义,直接按如下方法定义枚举类型变量varMyAlign:(left,center,right)一般用到如下场合:某种变量的值可以确定范围,即值的几种可能性均能确定,对齐方式若确定只有左对齐,居中对齐,右对齐三种,即可定义为枚举类型 Delphi程序设计49大连理工大学出版社(5)、子界类型)、子界类型子界类型(subrange)为某个有序类型的子集,子界类型也是一种用户自定义类型,它规定了值域的上界和下界及取值的类型。typeAge=1.200;/类型定义VarMyAge:Age/变量声明注意注意:上界和下界必须属同一顺序类型,上界序号必须大于下界序号。Age=0.5.200是错误的子界类型的上、下界的类型定义了子界的基类型,1.200基类型为整数,a.z基类型为字符型如果子界类型的基类型是枚举类型,则应该在定义子界类型之前先定义枚举类型 Delphi程序设计50大连理工大学出版社(6)实数类型实数类型定义了一类可以用浮点数表示的数字。用处:表示连续量定义:varx,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)、类引用类型(classreference)、接口类型(interface)集合类型集合类型一个集合由集合成员组成,集合的成员元素是无序的。集合的另一个特点是无重复元素。集合操作的重点是判定一个元素是否属于该集合,而不是元素在集合的次序和出现的频率。集合类型(set)的类型定义方法如下:type类型名称类型名称=setof元素类型元素类型注意注意:ObjectPascal中规定了基类型只能是不超过256个有序值的集合,集合的元素的序数值必须介于0和255之间。Delphi程序设计53大连理工大学出版社【任务二任务二】判断以下集合定义是否正确,并说明原因typeTSetA=setofInteger;/错误TSetB=setof255.300;/错误TSetC=setofWideChar;/错误TsetD=setof10.50;/正确TsetE=setofchar;/正确 Delphi程序设计54大连理工大学出版社(2)数组类型)数组类型数组类型数据表示的是同种类型数据的集合。数组类型的数据是排列有序的,每个数据元素都有一个唯一的索引号。与集合类型不同的是,数组类型的数据可以重复。数组类型分为静态数组和动态数组。静态数组静态数组静态数组就是传统的Pascal中的数组类型。在程序初始化时给静态数组分配内存空间,所以静态数组必须具有确定的大小,其元素的数据类型也必须是确定的。定义静态数组的语法形式如下:type数组类型名数组类型名=array下标类型下标类型of基类型基类型/一维数组一维数组或或数组类型名数组类型名=array下标类型下标类型1,下标类型,下标类型nof基类型基类型/多维数组多维数组数组类型标识符号=array下标类型1,下标类型nof基类型;其中,下标类型是有序类型,下标类型通常是以Integer为子界的,也可以是其它有序类型的子界;基类型声明元素的数据类型;数组由同一类型的数据元素组成。Delphi程序设计55大连理工大学出版社【任务三任务三】定义如下的数组类型typeTarr1=Array1.10ofInteger;Tarr2=Array1.3,1.5ofChar;vara:Tarr1;/声明变量a是Tarr1类型数组b:Tarr2;/声明变量b是Tarr2类型数组也可以声明变量时直接定义数组的类型,如:vara:Array1.10ofInteger;使用数组时,经常需要编写的程序代码就是访问数组中的元素。数组元素的访问是通过数组名后面加上方括号和下标值来访问的。如:a1:=10;Delphi程序设计56大连理工大学出版社【任务四任务四】定义如下的数组类型,做相应的计算,并最终打印出数组内容 Delphi程序设计57大连理工大学出版社动态数组动态数组在定义时并没有确定数组的大小或长度,而是在访问之前用SetLength过程为数组动态或重新分配其存储空间。定义动态数组的语法形式如下:Type数组类型名数组类型名=arrayof基类型;基类型;/一维数组一维数组数组类型名数组类型名=arrayofarrayof。arrayof基类型基类型/多维数组多维数组Var数组类型标识符:arrayofbaseType;例如:varDynArr:arrayofInteger;声明DynArr为元素是整型的动态数组。也可以先定义类型,再声明变量,如:typeTdynIntArr=arrayofinteger;varDynArr: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、在控制台程序中编写代码如下ProgramProject2_3;$APPTYPECONSOLEtypeTDateRec=record/记录类型的定义Year:integer;Month:(Jan,Feb,Mar,Apr,May,Jun,Aug,Sep,Oct,Nov,Dec);Day:1.31;End;Delphi程序设计60大连理工大学出版社VarRecord1,Record2,Record3:TDateRec;/记录类型变量的声明BeginRecord1.Year:=1975;/给记录中的域赋值Record1.Month:=Sep;Record1.Day:=13;WithRecord2do/使用with语句可以简化代码的输入BeginYear:=1973;/相当于Record2.Year:=1973Month:=Jul;Day:=21;End;Record3:=Record1;/对记录进行复制End;Delphi程序设计61大连理工大学出版社(4)文件类型)文件类型Type文件类型名=fileof元素类型;元素类型可以是整数、实数等简单类型,也可以是记录类型这样的复杂类型,例如TypeTstudent=RecordName:String8;Age:Byte;End;StudentFile:FileofTstudent;如果元素类型被忽略,则是无类型文件,直接用底层的IO函数打开文件,并把它当作二进制文件处理。TextFile是预定义的类型,表示一个文本文件。Delphi程序设计62大连理工大学出版社(5)指针类型)指针类型指针类型(pointer)的变量指向的是内存空间的地址。通常我们真正关心的是某一个地址存放的数据,通过指针可以对所指地址中的数据进行操作。指针类型的定义形式如下:type指针类型名=类型;其中,指针类型名为任意合法的标识符。“”放在类型的前面,表明声明的类型为一个指针类型。“”后面紧跟的类型确定了指针所指向的类型,可以是简单类型。如:整型、实型或枚举型等,也可以是结构类型,如:数组、集合或记录等等。一旦定义了指针变量,就可以用符号把另一个相同类型变量的地址赋给它。Delphi程序设计63大连理工大学出版社【任务六任务六】练习指针的定义和使用 Delphi程序设计64大连理工大学出版社(6)可变类型)可变类型是指可以在程序运行期间确定或改变的数据类型。这些数据在编译期间不能确定其数据类型,而且,它们比固定类型的数据占用更多的存储空间和更多的操作时间。默认的情况下,可变类型可以是除了记录类型、集合类型、静态数组类型、文件类型、类类型和指针类型之外的任何类型,也就是说,可变类型可以是除了结构类型和指针类型之外的任何其他类型。Var变量名:Variant;Delphi程序设计65大连理工大学出版社举例:举例:VarV1,v2,v3,v4:Variant;BeginV1:=1;/整型值V2:=123456;/实型值V3:=Hello;/字符串值V4:=v1+v2+100;/实型值1335.56End;Delphi程序设计66大连理工大学出版社四、运算符与表达式四、运算符与表达式1、运算符、运算符算术运算符(+、-、*、/、div、mod)关系运算符(=、=、=)位运算符(not、and、or、xor、shl、shr)逻辑运算符(not、and、or、xor)Delphi程序设计67大连理工大学出版社2、运算符的优先级(从高向低)、运算符的优先级(从高向低)Delphi程序设计68大连理工大学出版社优先级别运算符第一级(最高)单目运算(+-not )第二级乘除运算(*/div mod and shl shr as)第三级加减运算(+-or xor)第四级关系运算(=in is)3、表达式、表达式表达式是由运算符、运算对象和分隔符组成的序列,它指明了一个运算。表达式中的运算对象可以是另外一个表达式。最简单的表达式是变量和常量,更复杂的表达式则通过将简单表达式通过运算符、函数调用、强制类型转换结合在一起而构成,下面的例子都是合法的表达式:Delphi程序设计69大连理工大学出版社X/变量,值为变量的值15/常量,值为常量本身Calc(x,y)/函数调用,值为函数运算的结果X*y/算术运算,值为两个变量值的乘积X=1.5/逻辑表达式,如果变量X的值为1.5,则值为true,否则为falseC in Range1/逻辑表达式,如果C的值在Range1集合内,值为true,否则为falsea,b/集合,值为集合本身char(65)/强制类型转换,值为字符A项目三 程序语句程序由一系列的语句组成,主要有简单语句,结构语句,条件语句,循环语句,转向语句等。一、简单语句一、简单语句1.赋值语句赋值语句赋值语句的一般格式为::=;其中符号“:=”是赋值运算符,它表示将运算符右侧表达式运算的结果存入左侧变量相对应的存储单元中,作为左侧变量当前的值。Delphi程序设计70大连理工大学出版社举例:Y:=0.5;/将一个常量赋值给一个变量。Done:=(i=1)and(i100);/将逻辑表达式的结果赋值给一个变量。Huel:=Blue,Succ(C);/将一个子集赋值给一个变量。I:=Sqr(J)-I*K;/将一个表达式的结果赋值给一个变量。Shortint(MyChar):=122;/给类型转换后的变量赋值MyStringI:=A;/给数组的一个元素赋值。TmyObject.SomeProperty:=True;/给对象的属性赋值 Delphi程序设计71大连理工大学出版社2.输入输入/输出语