Delphi教程清华版_第1页
Delphi教程清华版_第2页
Delphi教程清华版_第3页
Delphi教程清华版_第4页
Delphi教程清华版_第5页
已阅读5页,还剩479页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Delphi教程,清华大学出版社,课程介绍,Delphi是著名的Borland公司开发的可视化软件开发环境,自1995年问世以来,带来了程序设计中的一场重大变化。Delphi作为第四代编程语言,具有简单、高效和功能强大等特点,这些特点使得它为广大程序开发者所青睐。,第1章Delphi基础知识,1.1Delphi简介Delphi作为一种可视化的编程环境,经历了7代产品的发展历程:Borland公司在1995年推出了基于Windows平台的Delphi1。Delphi2新增加的主要功能是对32位编程的支持。还增加了如数据模块等多种高效的数据重用功能。,Delphi3对其组件库进行增强,完全支持ActiveX组件及其创建。Delphi4提供了ObjectPascal语言的扩展,但系统稳定性较差。1999年推出Delphi5增强了数据库的功能2001年6月推出Delphi6,增加了大量的新组件,使组件数目达350多个,以满足网络开发的需要。2002年8月推出Delphi7,在集成开发环境IDE、Web、数据库、编译器、模型生成支持及组件库等很多方面进行了改进,1.2Delphi7IDE1.2.1认识集成开发环境Delphi7的IDE主要包括7个部分:主窗口、组件面板、工具栏、窗体设计器、代码编辑器、对象观察器和代码浏览器。,图1-1Delphi7的IDE,1.主窗口主要包括:菜单栏、工具栏、标题栏和组件面板Delphi7的主菜单包括11个下拉菜单注意:工具栏上的按钮都提供了描述该按钮功能的tooltip,除了组件面板IDE有6个独立的工具栏IDE工具栏的定制功能并不仅限于配置需要显示的按钮,还可以调整工具栏、组件面板和菜单栏在主窗口中的位置。,图1-2Delphi7的主窗图口,Delphi7组件板包含了350多个组件,是Delphi可视化编程的核心部件,它由27个选项卡组成组件面板如图1-4所示包含了IDE中安装的所有的VCL组件和ActiveX组件将组件板上的组件添加到窗体上的三种方法:单击组件板上的所需组件的按钮,然后在窗体适当位置拖动鼠标画出组件,即可将组件添加到窗体的指定位置上,图1-4Delphi7的组件面板,双击组件板上的所需组件的按钮,即可将组件添加到窗体的中心位置按下键不放,单击组件板上的所需组件的按钮,所选组件出现蓝色边框,同时对象选择按钮将弹起组件板中的组件分为可视组件与非可视组件2.窗体设计器在创建新的项目时,窗体设计器是一个空白的窗口。可以用鼠标调整组件在窗体设计器上的位置和大小,还可以用对象观察器和代码编辑器来控制组件的外观和行为。,3.对象观察器利用对象观察器,可以修改窗体或组件的属性,或者使它们能够响应不同的事件。属性(Property)是一些数据,如高度、颜色、字体等,它们决定了组件在屏幕上的外观。事件(Event)则是一种消息处理机制,它能够捕捉某种情况的发生并做出反应,像鼠标单击和窗口打开就是两种典型的事件。对象观察器类包括Properties选项卡和Events选项卡,下图两个对象观察器,左边一个按种类排序,右边一个按名字排序。注意:帮助系统是和对象观察器紧密结合在一起的,想了解某个属性或事件的帮助信息,只要在该属性或事件上按下F1键,图1-5按种类或名称查看ObjectInspector,4.代码编辑器代码编辑器是输入代码来指定应用程序行为的地方,也是Delphi根据应用程序中的组件自动生成代码的地方。当向应用程序中加入一个窗体时,Delphi会自动创建一个新的单元,并添加到代码编辑器顶部的标签中。5.代码浏览器以一种树状视图方式显示列在代码编辑器中的单元文件。通过它,可以方便地在单元文件中漫游或在单元文件中加入新的元素或者把已有的文件改名。要记住代码浏览器和代码编辑器有一对一的关系。,6.源代码生成器当对窗体设计器中可视化组件进行操作时DelphiIDE自动生成ObjectPascal源代码。当用【File】|【New】|【Application】菜单命令创建一个新的项目时,将看到屏幕上出现一个空白的窗体设计器,同时,代码编辑器中会自动出现一些代码,如下所示:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs;,typeTForm1=class(TForm)privatePrivatedeclarationspublicPublicdeclarationsend;varForm1:TForm1;implementation$R*.dfmend.,从上述源代码清单中可以看出,窗体对象是从TForm继承下来的。下面这一行非常重要:$R*.dfmPascal语言中的$R指令用于加载一个外部资源文件。*.dfm文件中包含在窗体设计器中创建的表单的二进制代码。其中的“*”表示与当前单元文件同名的文件。项目文件的扩展名是.dpr可以选择主菜单下的【Project】|【ViewSource】命令把项目源文件调入代码编辑器。,如下用程序示例的项目文件:programProject1;usesForms,Unit1inUnit1.pasForm1;$R*.resbeginApplication.Initialize;Application.CreateForm(TForm1,Form1);Application.Run;end.当添加表单和单元时将出现在uses子句中,1.2.2基于组件的编程思想.早期DOS操作系统和C语言主导的时代,“数据结构+算法”成为构建软件惟一方式.C+语言和面向对象技术.20世纪90年代中期流行一种崭新的程序设计概念:软件可以由可互换的组件构成组件是一种通过公开的属性、方法、事件,是可以重复使用的一种经过编译的二进制文件,其文件名可以是.OCX或者是.dll,如命令按钮、复选框、单选框、滚动条等都是常见的组件。,1.2.3Delphi7的特点Delphi最显著的特点就是高效性和稳定性,主要体现在以下4个方面:可视化开发环境的性能。编译器的速度和已编译代码的效率。编程语言的功能及其复杂性。丰富的VCL1.可视化开发环境可视化开发环境通常可分为3个部分:编辑器、调试窗口和窗体设计器。,2.编译器的速度和已编译代码的效率Pascal编译器最著名特点就是速度快,而Delphi正是建立在这种编译器基础之上的。增加了链接和各种缓存策略,尤其是在VisualC+和C+Builder中。3.编程语言的功能及其复杂性汇编是一种最有力的语言,即便是用汇编开发最简单的应用程序,难度也非常大,还可能一无所获。4.丰富的VCLVCL是Delphi7最重要的组成部分,包含不同种类的组件。,1.2.4帮助的使用(1)当遇到问题时,可以尝试按下【F1】键,一般情况下Delphi都会准确地定位。(2)如果需要浏览系统的一些帮助内容,比如说对象Pascal语言,可以通过菜单【Help】|【DelphiHelp】命令打开【帮助主题:DelphiHelp】对话框,在目录标签中展开相关条目,进行系统学习。3)当使用WindowsAPI函数时,通过【Help】|【DelphiHelp】打开的【帮助主题:DelphiHelp】对话框中,在【索引】选项卡中可能查不到有关的帮助信息,有两种解决办法:,一种办法是在代码编辑器中输入WindowsAPI函数的名称,然后将光标定位到该名称中,接着按下【F1】键。另一种办法是通过【Help】|【WindowsSDK】打开帮助文件Win32.hlp,在【索引】选项卡中查找。(4)帮助文件打开时,要浏览相关内容,可以按下工具栏中的【】或【】按钮,通常这样是在同一个主题中浏览。通过一些SeeAlso热链接,也可以查看相关的帮助内容。(5)在组件栏上右击,通过快捷菜单的Help命令,可以查看有关组件的帮助内容。,(6)在Delphi集成开发环境中,通过【Help】|【Customize】命令可以打开【OpenHelp】窗口,在该窗口中可以对帮助文件进行管理,其中包括帮助内容、帮助索引、链接位置和帮助工程文件等的管理。1.3简单Delphi程序设计Delphi7编写应用程序包括新建应用程序、设置窗体属性、添加组件、设置组件属性、添加事件、编写事件响应代码、编译运行等1.新建应用程序,启动Delphi7,选择【File】|【New】|【Application】菜单,新建一个应用程序。2.设置窗体属性单击【ObjectInspector】,在对象观察器中打开【Properties】选项卡,单击Caption属性右侧,输入窗体的新标题“窗口”。3.向窗体中添加组件单击Standard选项卡上的Button组件,将鼠标指向窗体中的任意位置(标题栏除外),单击鼠标,即可把Button1组件放入窗体中。或者直接双击组件面板上的Button组件,也可以在窗体中添加一个Button1组件。,4.设置组件属性选中组件,单击ObjectInspector的标题栏以激活对象观察器,并选择Properties选项卡。在对象观察器中单击要设置的属性,进行属性设置。5.添加事件选中要添加事件的组件,激活对象观察器,并选择Event选项卡,在对象观察器中单击要添加的事件,在其右侧输入事件的响应函数名称,然后回车即可。6.编写事件响应代码,选定要编写事件响应代码的组件,打开Event选项卡,双击要编写响应代码的事件右侧的空白部分,进入代码编辑窗口。procedureTForm1.Button1Click(Sender:TObject);/单击放大按钮,窗口将放大beginform1.Height:=form1.Height+10;/窗口高度10form1.Width:=form1.Width+10;/窗口宽度10end;procedureTForm1.Button2Click(Sender:TObject);/单击缩小按钮,窗口将缩小Beginform1.Height:=form1.Height-10;/窗口高度减10,form1.Width:=form1.Width-10;/窗口宽度减10end;procedureTForm1.Button3Click(Sender:TObject);/关闭窗口beginclose;/退出end;7.编译运行程序,图1-6例程运行界面,1.4Delphi上机步骤1.启动程序2.添加组件在窗体设计器中添加如图1-7所示的各组件。3.设置组件属性4.编写代码组件属性设置完成后,编写如下代码:,图1-7窗体布局图,procedureTForm1.Edit1Change(Sender:TObject);/编辑框1中的内容改变时的事件varstringlength:integer;/定义整型变量,记录编辑框1中字符的个数beginstringlength:=edit1.GetTextLen;/得到编辑框1中字符个数edit2.Text:=inttostr(stringlength);/编辑框2显示编辑框1中字符个数end;procedureTForm1.Button1Click(Sender:TObject);/关闭窗口beginclose;end;,5.保存工程保存工程分为保存单元文件和保存项目文件两步。第一步是保存单元文件,单击工具栏上的Save按钮,将打开SaveUnit1As窗口,默认的单元文件名是“Unit1.pas”,以“.pas”为扩展名,单元文件名根据需要可以另取。第二步是保存项目文件,单击工具栏上SaveProject1As按钮,默认的项目文件名是“Project1.dpr”,工程文件名根据需要可以另取以“.dpr”为扩展名,6.运行工程保存工程结束后即可运行工程小结在本章中,主要介绍了Delphi的产生和发展,Delphi的特点,使用Delphi进行程序设计的一些基础知识。本章的重点是Delphi的开发环境和开发方法,通过实例介绍了Delphi的程序设计和上机操作的一般步骤。,图1-10工程运行界面图,第2章Delphi语法基础,2.1保留字与标识符2.1.1标识符标识符是ObjectPascal语言中各种成分的名称,这些成分包括变量(Var)、常量(Const)、类型(Type)、过程(Procedure)、函数(Function)、方法(Method)、单元(Unit)等。,标识符可以分为三类:标准标识符、自定义标识符和限定标识符。1标准标识符(1)标准常量,如False、Maxint、True等;(2)标准类型,如Boolean、Char、Real等;(3)标准函数,如Sin、Cos、Abs、Arctan等;(4)标准过程,如Dispose、Get、New、Pack、Put等;(5)标准文件,如Input、Output等。,2自定义标识符程序员根据程序设计的需要,自己定义的常量、变量、类型、函数、过程等所取的名字。自定义标识符可以由任意长的一个不带空格的字符串组成,包括字母AZ、az、数字09和下划线“_”等。定义标识符需要遵循以下规则:(1)标识符不区分大小写;(2)标识符只能以字母或下划线开头,不能以数字开头;(3)标识符可任意长度,但只有前225个字符有效;(4)标识符中间不允许有空格;,(5)不允许使用ObjectPascal语言的保留字作为标识符。3限定标识符在Delphi程序中可引用多个单元,而各个单元中全局变量、函数、过程等可能会同名,在引用时需用限定标识符来区分它们:VarY:real;Y:=System.cos(pi);其中System称为限定符,而System.cos称为限定标识符。,2.1.2保留字保留字由系统规定具有特定意义,不能被重新定义或作他用,定义了65个保留字。注意:1单词at和on具有特殊含义,不要与它们同名。2保留字和ObjectPascal一样不区分大小写。3Delphi集成开发环境的代码编辑器中,黑体显示保留字和指令字,定义时不要与这些黑体字一样。,ObjectPascal的保留字,2.1.3指令符指令字只在特殊的程序位置、或当上下文关联时有意义的程序区段有自己特殊的意义,而在其他场合,用户可对其重新定义,即可将其定义为标识符,ObjectPascal不会指示出错,当用户重新定义这些指令字后,在作用域内它们就失去了原来的意义了。ObjectPascal中规定的指令符有39个说明:指令符private、protected、public、published和automated在定义对象类型时也作为保留字,而在其他场合则作为指令符。,2.1.4注释注释可增加程序的可读性和可维护性。ObjectPascal语言中注释有三种形式:1组合符号“”与“”的成对使用表示它们之间的内容为注释部分。2组合符号“(*”与“*)”的成对使用表示它们之间的内容为注释部分。3符号“/”的单个使用表示所在行的该符号之后的内容为注释。,注意:1注释符“”与“”、“(*”与“*)”在使用时不支持注释的嵌套,而且必须成对使用。2对于单行和少量几行注释使用符号“/”,对于大块注释使用“”和“”或“(*”和“*)”。3有时可利用注释在代码中形成一个醒目标志。4在注释符“”或“(*”后紧接着是一个美元符号“$”时,表示该句是一个编译器指令,它与普通的注释不同,通常用来对编译过程进行设置。,2.2数据类型描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序加工处理的符号的集合称为数据。数据类型可以分为标准数据类型及高级数据类型等,还可以通过数据类型声明语句在预定义数据类型的基础上定义新数据类型。说明:1标准数据类型属于ObjectPascal内部约定的数据类型,无需定义就可以直接使用。,2高级数据类型体现了特殊的数据结构,在使用之前必须由用户自己定义。3数据类型中整型、字符型、布尔型、枚举型和子界型被称为顺序类型,其取值是一个有序集合,每一个可能取值都与顺序有关。2.2.1数值型数据数值型数据可分为整数类型和实数类型。1.整数类型整数类型是存储整数数据的类型,分为基本整形和一般整形。,基本整形:短整型、小整型、长整型、64位整型、字节型、字型、长字型一般整形:整型、序数型注意:尽量使用一般整型Integer和Cardinal,可以最大限度发挥CPU和操作系统的性能。2.实数类型实数类型是存储实数数据的类型,分为基本实型和一般实型。基本实型:单精度实型、扩展型、双精度实型、货币型一般实型:实型,注意:Real类型与Double类型完全等价。Currency类型至少有4位有效的小数位。2.2.2字符型数据ObjectPascal中的字符型数据可以分为字符型和字符串型2类7种。1.字符类型ObjectPascal包括3种形式的字符型数据,说明:(1)前2种为基本字符类型后一种为一般类型。(2)Char与AnsiChar完全等价,但Char常用。2.字符串类型字符串类型是存储字符串数据的类型,ObjectPascal包括了4种形式的字符串型数据,说明:()AnsiString类型的定义是动态分配的,内容由AnsiChar类型的字符组成,长度仅受可用内存空间的限制,以空字符Nul作为结尾。()String字符串类型,既可以是ShortString类型也可以是AnsiString类型,默认定义是AnsiString类型。2.2.3布尔型数据布尔型数据用于关系运算和条件语句的逻辑运算,包括4种形式的布尔型数据。,说明:(1)后3种类型是为了兼容其他语言而设置的,编程时应尽量使用Boolean类型。(2)Boolean取值为False和True两个符号常量。,2.3常量与变量2.3.1常量常量即在程序的执行过程中其值不能改变的量。常量有两种,一种是常量值本身,也称为直接常量;另一种是要用声明定义的标识符表示的常量,也称为声明常量。声明常量又可以分为符号常量和类型常量。1.直接常量直接常量是指在程序中直接引用的常数,如整型常数、实型常数、字符型常数、字符串型常数和布尔型常数。2.声明常量,(1)符号常量在程序中,某一个常数反复多次出现,可以定义一个标识符来代表该常数,这个标识符就是符号常量,其值在定义后不会改变。也称纯常量。定义符号常量使用常量说明语句,其语法格式为:Const=;=;其中Const是保留字,表示常量定义段开始。,注意:保留字Const可单独一行也可与常量一行。不能在程序中给常量另行赋值,否则将导致语法错误。Delphi由常量值判断常量名属于哪种类型。(2)类型常量类型常量用于保存数组、记录、过程以及指针等类型的值,不能出现在常量表达式中。在默认的编译器状态下,类型常量的值可改变,但当在程序中加入编译命令$j-时,则类型常量的值在运行期就无法改变。,声明类型常量的语法规则为:Const:=;其中类型是除文件型和可变型的所有类型,常量值可以是和类型相应的常量表达式。2.3.2变量1.变量的声明变量在单元、函数或过程的声明部分进行声明,声明的位置决定了变量的作用域。声明包括两部分:变量名和它所属的类型,变量声明的语法格式为:,Var:;:;当多个变量具有相同数据类型时,格式如下:Var,:;其中,Var是保留字,表示变量声明段的开始;同类型的可超过一个,间用“,”分隔;可以是基本数据类型或是由用户定义的高级数据类型;,2.变量的使用一旦声明了一个变量应及时对它进行初始化,最简单方法就是给变量赋值,在表达式中使用变量。2.4运算符与表达式按照操作数数目的多少来分,运算符分为下面两类:单目运算符和双目运算符。单目运算符一般放在操作对象的前面,双目运算符都放在两个操作数之间。表达式是表示某个求值规则的运算公式,由运算符和配对的圆括号将常量、变量、函数、对象等操作数以合理的形式组合而成。,2.4.1算术运算符与算术表达式1.算术运算符算术运算符对浮点数和整数进行加、减、乘、除和取模运算,取正“+”和取负“-”是单目运算符,其他均为双目运算符。说明:(1)+、-、*运算中,参加运算的数可以是整型和实型,结果自动向精度高的类型转化。(2)参加除法运算“/”,结果都是实型的商。(3)参加整数除法“Div”和求余运算“Mod”的数必须是整型,结果也是整型数,符号与被除数的符号相同,小数部分被舍去。(4)在表达式a/b、aDivb和aModb中,如果b的值为0,将会触发一个错误。,2.算术运算符的优先级同级运算自左至右,如果含有括号,则先计算括号内表达式的值。3.算术表达式将数学式改写为算术表达式,考虑三个问题:一是语法,二是优先级,三是类型。,说明:(1)数学式中省略的运算符和表示函数参数的括号必须添加上去(2)必须注意优先级的处理,恰当利用标准函数,注意数据类型。2.4.2逻辑运算符与布尔表达式逻辑运算符可分为布尔运算符、位运算符和关系运算符。1.布尔运算符只能对两个布尔型操作数进行运算,结果仍为布尔型,True或False。,其中,NOT是求“非”,为一元运算符;AND是求“与”,OR是求“或”,XOR是求“异或”,均为二元运算符。2.位运算符,注意:右移操作时原值的低位丢失,高位补0;左移操作时原值的高位丢失,低位补0。3.关系运算符,4.布尔表达式布尔表达式由布尔运算符和布尔类型的操作数所组成,包括关系运算表达式和运算结果为布尔类型的函数,如Odd(x)、FileExists(x)、等。但位运算符的结果是整数类型,不能直接作为布尔操作数。2.4.3字符串运算符连接运算符“+”主要用于连接两个或更多的字符串。最简单的字符串表达式是字符常量、字符串常量、字符变量、字符串变量或字符函数的引用。字符串表达式格式为:,+|当两个字符串用连接运算符连接起来后,第二个字符串直接添加到第一个字符串的尾部,结果是包含两个源字符串全部内容的新字符串。如果要把多个字符串连接起来,每两个字符串之间都要用“+”号分隔。2.4.4运算符的优先级,2.5常用系统函数与过程2.5.1数值运算函数Delphi的数值运算函数包含了常用的数学函数(如三角函数、对数函数等)和适合计算机数据处理的其他函数(如求数组中的最大值、求三角形的斜边长等)。2.5.2字符处理函数对字符的处理主要包括:大小写转换、比较先后顺序、合并、查找、截取、插入、求长度以及类型转换等。2.5.3日期时间函数调用日期时间函数可对日期和时间进行处理,2.5.4顺序类型函数1.顺序类型顺序类型指整型、字符型、布尔型、枚举型、子界型5种数据类型,如下所述:(1)整数的的序数是其自身;(2)字符的序数是其ASCII码;(3)布尔型数据:False序数为0,True为1;(4)枚举型第一个数据序数为0,其余类推;(5)子界型第一个数据序数为1,其余类推。除第一个序数,每一个都有一个前趋值;除最后一个序数,每一个都有一个后继值。,2.顺序函数2.6语句2.6.1语句的基本概念按执行时间可分为:声明语句和可执行语句。,声明语句包括单元说明语句、类型说明语句、变量说明语句、过程说明语句、函数说明语句和程序区段标识语句等。可执行语句包括赋值语句、运行控制语句和结构控制语句等。按语句的描述形式,可分为简单语句、结构语句和复合语句等。简单语句只含有一个语句定义符或特殊标志;结构语句往往含有多于一个的语句动词;复合语句则是由begin和end括起来的若干个简单语句、结构语句和复合语句,允许复合语句多层嵌套,或为空,也就是在begin和end之间没有其他语句。,2.6.2常见声明语句1.标号声明语句标号声明语句即用一个整型数来表示程序的某个执行语句,一行标号声明语句可以同时声明几个标号,其用法如下所示:labelAa,Ab;varI:integer;begin/语句if(I=0)thengotoAa;/语句Aa:begin/语句end;end;,2.类型声明语句在ObjectPascal中,所有的变量必须是某种特定的数据类型,类型决定了它所能包含的数值和可进行的操作,用类型声明语句可以定义新的数据类型。例如:TypeTmyDim:Array1.10,1.5ofDouble;3.过程声明语句过程可以被看成一段小程序,用来实现某种特定的目标,在完整的程序中它被当作一个语句来执行。在建立过程之前应先声明。procedureNumString(N:Integr;VarS:string);,4.函数声明语句函数与过程相似,主要区别在于函数必须有返回值,函数的声明参见下面的语句,其中,最后的Real表示函数的返回数据类型。FunctionPower(X:Real;Y:Integer):Real;2.6.3赋值语句和程序的顺序结构1.赋值语句赋值语句的语法格式为::=;2.类型兼容类型兼容是指数据类型不完全相同的量之间能进行的运算和赋值操作。,3.利用赋值语句给对象属性赋值由于属性总是归属于对象才有实际意义,所以引用属性时用符号“.”来连接表示其隶属关系。如组件Editl的字体的颜色属性表示为:Editl.Font.Color。4.顺序结构顺序结构是最简单、最常用的结构。在该结构中,各操作块按照出现的先后顺序依次执行,不产生程序流程的其他转移。它是任何程序的主体结构,即使在选择结构或循环结构中,也常以顺序结构作为其子结构。通常由若干个赋值语句或其他简单语句构成。,2.6.4条件语句和程序的选择结构实现选择结构的是IF语句和Case语句,这两种语句又称条件语句,条件语句的功能就是根据表达式的值有选择地执行一组语句。1.if语句通过条件的布尔表达式值选择执行路径。ifthenelse;if语句分为简单条件语句和复合条件语句。简单条件语句的中不包含其他的条件语句。如果在If语句格式中的或本身又是一个If语句,则称为If语句的嵌套,嵌套的If语句又被称为复合条件语句。,2.Case语句Case语句用来实现多分支选择结构。Case语句描述了多路择一的功能,它根据“选择器表达式”的值决定执行相应的语句。Case语句的语法格式为:caseof:;:;else;end;说明:的值必须是顺序类型。,2.6.5循环语句和程序的循环结构从某处开始有规律地反复执行某一程序块的现象称为“循环”,完成这一功能的程序结构为“循环结构,”而其中重复执行的程序块称为“循环体”。循环结构语句有3种,它们分别是:While语句、Repeat语句以及For语句。1.While语句While语句属于前测型循环结构。首先判断条件,根据条件决定是否执行循环,执行循环的最少次数为0。其语法格式为:whiledo;,说明:可在(循环体)中任何位置Break语句来终止While循环,Break语句通常位于IF语句后。可在循环体中任何位置放置Continue语句,以便在整个循环体没有执行完就重新判断(条件),以决定是否开始新的循环。Continue语句通常位于IF语句之后。2.Repeat语句Repeat语句属于后测型循环结构,首先执行循环体,然后判断条件,根据条件决定是否继续执行循环,执行循环的最少次数为1。repeatuntil;,3.For语句若知道要执行多少次循环时,则使用For循环结构。For循环使用一个循环变量,每重复一次循环之后,循环变量的值就会自动增加或者减少。For语句的语法格式为:for=to|downtodo;说明:只能是顺序类型,TO表示计数器递增,DownTo表示计数器递减。4.循环的嵌套循环语句的循环体中仅包含了简单语句,称为单重循环。,如果在循环体中又包含了另一个循环结构,则称为多重循环,又称为循环的嵌套。在循环体中的嵌套称为内循环,外部的循环称为外循环。多重循环嵌套根据循环结构嵌套层数可以分为二重循环、三重循环等。5.循环的中断特殊情况下,需要中断正在执行的循环,可以使用break语句或Continue语句。可以放在循环体的任意位置,通常放在If语句之后。执行Break语句的结果是:跳出整个循环,执行之后的语句。,执行Continue语句的结果是:跳出本轮循环,然后判断循环条件是否成立,再决定是否开始新一轮的循环。小结本章主要介绍了ObjectPascal的最基本的语法,主要包括基本词法、基本数据类型、常量与变量、运算符与表达式、常用函数与过程、语句等。,第3章常用组件,Delphi7.0的组件板上含有27个选项卡,总共包括350多个组件,如图所示:3.1窗体3.1.1Form组件窗体是应用程序的操作界面,是放置组件的基础。窗体由标题栏、工作区和边界组成。,图3-1组件板和选项卡运行界面图,Form的主要属性窗体组件(TForm)在运行时表现为一个窗体,窗体是一个容器构件,它可以包含其他种类的构件,并协同完成应用程序的整体功能。窗体由属性、事件和方法组成。(1)BorderIcons属性用来制定窗体标题栏上的图标(2)BorderStyle属性Borderstyle属性用来设置窗体的外观和边框(3)Name属性Name属性唯一地标识对象,取值不能为空,若工程中有多个窗体,名称不能相同。,(4)Caption属性用来指定窗体标题栏中说明文字,可以为空。(5)Font属性Font属性用来设置窗体中文字的字体、颜色和字号等等,其中Font.style属性为集合型。(6)FormStyle属性FormStyle属性用来指定窗体的类型。从窗体类型的角度来看,Windows环境中的应用程序可以分为以下三类。第一类:多文档界面(MDI)应用程序一般这种应用程序具有一个父级窗口和多个子窗口,可以同时打开多个文档,分别在多个子窗口中显示。,第二类:单文档界面(SDI)应用程序这种应用程序同时只能打开一个文档。第三类:对话框应用程序这种应用程序的主界面基于一个对话框类型的窗体。(7)Icon属性Icon属性用来指定标题栏中显示的图标。(8)Position属性Position属性用来描述窗体大小和显示位置。(9)WindowsState属性WindowsState属性来描述窗体显示状态。2.TForm的事件窗体是一个可视化的组件,包括外部事件和内部事件。,3.窗体的方法一些常用方法(过程或函数)有:Create、Close、CloseQuery、release、Show、ShowModal、Print。4窗体的创建创建窗体的方法分为两种:静态创建和动态创建。所谓静态创建窗体是指再工程的编辑、设计时创建新窗体;而动态创建窗体是指在工程的运行时通过代码生成窗体。(1)静态创建新窗体通过集成开发环境中的【File】|【New】|【Application】菜单,创建一个应用程序,,此时自动生成一个窗体Form1,再打开【File】|【New】|【Form】菜单生成一个窗体Form2。在Form1中添加两个Button、1个Label组件,Form2中添加1个Label组件,即可完成界面设计。添加代码:procedureTForm1.Button1Click(Sender:TObject);/创建按钮事件begin/关键分析form2.show;/调用Show方法显示Form2窗体end;procedureTForm1.Button2Click(Sender:TObject);beginform1.Close;end;,程序分析:编译上述工程时,系统会弹出出错提示信息,单击“Yes”按钮,Delphi将自动在Unit1单元中添加对Unit2单元的引用。(2)动态态创建新窗体在需要某个窗体时,临时创建它,使用后将其立即释放,这种称为窗体的动态创建。3.1.2弹出对话框窗体Delphi提供内部对话框有两种。第一种:信息输出对话框Showmessage过程、ShowMessageFmt过程、MessageDlg函数、MessageDlgPos函数、CreateMessageDialog函数。,第二种:信息输入对话框InputBox函数、InputQuery函数。1ShowMessage过程其语法格式为:ShowMessage();2ShowMessageFmt过程的语法格式为:ShowMessageFmt(,);3MessageDlg函数其语法格式为:=MessageDlg(,HelpCtx);4MessageDlgPos函数,其语法格式为:=MessageDlgPos(,HelpCtx,X,Y);可以指定对话框的显示位置坐标:X,Y。5CreatMessageDialog函数其语法格式为:=CreatMessageDialog(,);6InputBox函数其语法格为:=InputBox(,);,7InputQuery函数其语法格式为:=InputQuery(,);3.2输入显示类组件3.2.1Edit组件编辑框(Edit)是一种通用组件,既可以输入文本,又可以显示文本,编辑框组件位于Standard组件板中。,图3-7编辑框Edit运行界面图,1Edit的主要属性(1)AutoSelect属性:设置编辑框得到焦点时,文本是否自动被选中。(2)AutoSize属性:决定编辑框是否自动随字体的变化而改变大小。(3)Enable属性:用来设置编辑框是否能用。(4)BorderSytle属性:设置编辑框边框类型。(5)MaxLength属性:设所能接受最大字符数。(6)PasswordChar属性:设置非#0字符时,将代替用户输入的字符被显示。(7)ReadOnly属性:定编辑框中的文本是否可以编辑。,(8)SelStart属性:被选中文本的开始位置,或光标在文本中的位置。(9)SelText属性:被选中的文本。(10)SelLength属性:被选中文本的长度。(11)Text属性:编辑框中的文本内容。(12)CharCase属性:控制编辑框中文本大小写3.2.2Label组件标签组件位于Standard组件板中。,图3-8标签Label运行界面图,1Label的主要属性(1)Caption属性:用来显示标签的文本。(2)ShowAccelChar属性:决定是否将beginMemo1.Lines.Add(Edit1.Text);edit1.Text:=;edit1.SetFocus;end;,图3-12Memo示例运行界面图,procedureTForm1.FormActivate(Sender:TObject);beginedit1.SetFocus;end;3.2.4MaskEdit组件它限制用户在所定义的位置输入要求输入的符号。掩码编辑框(MaskEdit)组件位于Additional附加组件板”中。1MaskEdit常用属性,图3-13Memo示例运行界面图,()EditMask属性EditMask属性用来控制用户输入数据格式的掩码字符串,掩码字符串EditMask属性分为三个部分,用分号分隔。第一部分是掩码字符串的主要部分,它确定了数据的格式;第二部分决定是否将掩码中的字符串作为数据的一部分,0表示不作为数据的一部分,1表示作为数据的一部分,它将影响属性;第三部分指出在掩码中用来代表未输入数据的字符。(2)EditText属性:用来返回用户输入的数据。,3.3按钮类组件3.3.1Button组件Button按钮在Delphi7.0组件板Standard选项卡中1.Button的主要属性(1)Caption属性:来制定按钮所显示的文字。(2)Cancel属性:决定改按钮是否为取消按钮,缺省值为False。(3)Default属性:用来决定改按钮是否为默认按钮,缺省值为False。,图3-16Button基本按钮运行界面图,(4)ModalResult属性:用来决定模式窗体如何被关闭。2.Button的事件Button组件常用的事件如表所示。在下述两种情况下,OnClick事件将被激发:(1)用鼠标单击按钮。(2)按钮获得焦点时按下键或空格键。,3.3.2BitBtn组件位于Delphi7.0组件板Additional选项卡中。1BitBtn的主要属性(1)Glyph属性:为bitBtn制定一个.bmp文件,显示再按钮的表面。(2)Kind属性:决定bitBtn按钮的种类。(3)Layout属性:用来控制bitBtn按钮中位图与文本的相对位置。默认值为blGlyphLeft。(4)Margin属性:用来控制bitBtn按钮中位图与边界之间的象素个数。,图3-17BitBtn按钮运行界面图,(5)Spacing属性:用来控制bitBtn按钮中位图与文本之间的(距离)象素个数,默认值为4。2.BitBtn的事件BitBtn组件常用的事件如表所示。在下述两种情况下,OnClick事件将被激发:(1)用鼠标单击按钮。(2)按钮获得焦点时按下键或空格键。,3.3.3SpeedButton组件快速按钮(SpeedButton)是一种可以成组工作的按钮,具有将位图显示在按钮表面的功能;还具有允许其中一个按钮被选中(按下)的功能;当它单独使用时具有开关的功能。快速按钮位于Additonal组件板中。SpeedButton的主要属性有:(1)AllowAllUp属性:控制是否允许单击处于按下状态的按钮,使之恢复到松开状态。默认值为False。,图3-19快速按钮SpeedButton运行界面图,(2)Down属性:设置按钮是否处于按下状态。(3)Flat属性:当取值为True时,按钮具有Office97工具栏的风格。默认值为False。(4)GroupIdex属性:该属性默认值为0,表示不与其他SpeedButton成组。3.4复选框、单选按钮和单选按钮组3.4.1CheckBox组件位于Delphi7.0组件板Standard选项卡中。,图3-21复选框CheckBox,复选框CheckBox具有选中和未被选中两种状态,未选中状态,选中状态。还有一种不确定状态,表示既非选中又非未选中。1CheckBox的主要属性(1)Checked属性:用于表明CheckBox是否被选中。(2)State属性:属性State进一步确定CheckBox状态。有3种值:cbChecked、cbUnchecked和cbGrayed,分别为选中、未选中和不确定。(3)AllowGrayed属性:为True时,复选框有3种选择:为False时,只有选中和未选中状态。,3.4.2RadioButton组件位于Delphi7.0组件板Standard选项卡中。RadioButton的主要属性有:Checked属性:表明CheckBox是否被选中。RadioButton有两种状态,如果当Checked属性为True时,表示选中状态,如果当Checked属性为False时,表示未选中状态。3.4.3RadioGroup组件位于Delphi7.0组件板Standard选项卡中。,图3-23单选按钮RadioButton,1RadioGroup的主要属性(1)Columns属性属性Columns用于设置单选按钮组中按钮的列数。范围116,默认值为1。(2)Items属性:用于设置各种单选按钮标题。(3)ItemIndex属性:单选按钮组中被选中按钮(从0开始)的序号。默认值为-1,表示组中按钮均未被选中。,图3-25单选按钮组RadioGroup,3.5列表框、组合框3.5.1ListBox组件当列表框不能同时显示所有选择项时,将自动加上一个垂直滚动条,使用户可以上下滚动列表框,以查阅所有的选项。列表框位于组件板Standard选项卡中。ListBox的主要属性:(1)Items属性:列表框中选项的集合。(2)ItemsIndex属性:为选项的索引值。,图3-28列表框ListBox运行界面图,(3)Stored属性:决定选项是否排序。(4)Columns属性:决定列表框的列数。(5)MultiSelect属性:定是否可以选择多项。(6)SelCount属性:被选中的项的数目,只读。(7)Selected属性:设置或返回是否被选中。(8)IntegralHelght属性:True自动调整框的高度使每行的高度(IntemHeight)可以完整地被显示。False不自动调整框的高度,非完整高度行被显示在框的底部。(9)ItemHeight属性:控制列表框中行的高度。,(10)Style属性lbStandard固定Font.Size属性与ItemHeight属性之比。lbOwnerDrawFixed可以调整ItemHeight,并将自动调整框的高度以适应行高。LbOwnerDrawVariable可以调整ItemHeight属性,需手动调整框的高度以适应行高。3.5.2ComboBox组件兼有EditBox和ListBox两者功能,用户可以通过键入文本或选择列表中项目来进行选择。组合框位于组件板Standard选项卡中。,1.组合框的主要属性(1)Items属性:列表框中选项的集合。(2)ItemsIndex属性:为选项的索引值。(3)Stored属性:决定选项是否排序。(4)DorpDownCount属性:控制组合框下拉列表所能显示选项的最大个数。(5)SelText属性:存储显示于编辑区中被选中项的内容。(6)Style属性:决定组合框的风格。,图3-29组合框ComboBox,3.6滚动条要想自己操纵窗口的滚动,就要用到TScrollBar组件。当在滚动条上操作时,将触发OnScroll事件,TScrollBar组件直接继承于TwinControl中,位于Standard选项卡中。1ScrollBar主要属性、方法与事件(1)LargeChange属性:当用户单击滚动条时,滚动距离由LargeChange属性设置,默认1。(2)Max、Min属性:设置滚动条可滚动的范围,图3-31滚动条Scrollbar,(3)PageSize属性:当用户按键盘上的PageUp或PageDown键时,滚动条滚动的距离是由PageSize属性设置的,默认是1。(4)Position属性:设置或返回滚动条中小方块的位置。(5)SmallChange属性:是用户按滚动条两端的箭头时滚动条的距离,默认值是1。(6)SetPaxams方法:该过程相当于分别设置Position、Max和Min属性。(7)OnScroll事件:第三个参数返回滚动条小方块的位置,第二个参数返回滚动条的状态。,3.6计时器Timer组件位于System组件板中,如图所示,属于非可视化组件,在设计时显示为一个小时钟图标,而在运行时则不可见了,冲用来做一些后台处理。1Timer组件的主要属性与事件(1)Enanled属性:为Ture时,定时器开始工作,为False时定时器暂停工作。(2)Interval属性:用来设置定时器触发周期。,图3-32Timer计时器,(3)OnTimer事件:Timer组件只提供一个事件,即OnTimer。该事件以Interval属性设置的频率被触发。3.7对话框

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论