Delphi编程经典教程_第1页
Delphi编程经典教程_第2页
Delphi编程经典教程_第3页
Delphi编程经典教程_第4页
Delphi编程经典教程_第5页
已阅读5页,还剩479页未读 继续免费阅读

下载本文档

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

文档简介

1、Delphi教程教程清华大学出版社清华大学出版社课程介绍课程介绍 Delphi是著名的Borland公司开发的可视化软件开发环境,自1995年问世以来,带来了程序设计中的一场重大变化。Delphi作为第四代编程语言,具有简单、高效和功能强大等特点,这些特点使得它为广大程序开发者所青睐。 第1章 Delphi基础知识1.1 Delphi简介简介 Delphi作为一种可视化的编程环境,经历了7代产品的发展历程: Borland公司在1995年推出了基于Windows平台的Delphi 1。 Delphi 2新增加的主要功能是对32位编程的支持。还增加了如数据模块等多种高效的数据重用功能。 Delp

2、hi 3对其组件库进行增强 ,完全支持ActiveX组件及其创建 。Delphi 4提供了Object Pascal语言的扩展 ,但系统稳定性较差 。1999年推出Delphi 5增强了数据库的功能 2001年6月推出Delphi 6 ,增加了大量的新组件,使组件数目达350多个,以满足网络开发的需要。 2002年8月推出 Delphi 7 ,在集成开发环境IDE、Web、数据库、编译器、模型生成支持及组件库等很多方面进行了改进。 1.2 Delphi7 IDE1.2.1 认识集成开发环境认识集成开发环境 Delphi 7的IDE主要包括7个部分:主窗口、组件面板、工具栏、窗体设计器、代码编辑

3、器、对象观察器和代码浏览器。 图1-1 Delphi 7的IDE1.主窗口主窗口 主要包括:菜单栏、工具栏、标题栏和组件面板 Delphi7的主菜单包括11个下拉菜单 注意:工具栏上的按钮都提供了描述该按钮功能的tooltip,除了组件面板IDE有6个独立的工具栏 IDE工具栏的定制功能并不仅限于配置需要显示的按钮,还可以调整工具栏、组件面板和菜单栏在主窗口中的位置。 图1-2 Delphi 7的主窗图口 Delphi7组件板包含了350多个组件,是Delphi可视化编程的核心部件,它由27个选项卡组成 组件面板如图1-4所示 包含了IDE中安装的所有的VCL组件和ActiveX组件 将组件板

4、上的组件添加到窗体上的三种方法:单击组件板上的所需组件的按钮,然后在窗体适当位置拖动鼠标画出组件,即可将组件添加到窗体的指定位置上 图1-4 Delphi 7的组件面板双击组件板上的所需组件的按钮,即可将组件添加到窗体的中心位置按下键不放,单击组件板上的所需组件的按钮,所选组件出现蓝色边框,同时对象选择按钮将弹起 组件板中的组件分为可视组件与非可视组件 2.窗体设计器窗体设计器 在创建新的项目时,窗体设计器是一个空白的窗口。可以用鼠标调整组件在窗体设计器上的位置和大小,还可以用对象观察器和代码编辑器来控制组件的外观和行为 。3.对象观察器对象观察器 利用对象观察器,可以修改窗体或组件的属性,或

5、者使它们能够响应不同的事件 。 属性(Property)是一些数据,如高度、颜色、字体等,它们决定了组件在屏幕上的外观。事件(Event)则是一种消息处理机制,它能够捕捉某种情况的发生并做出反应,像鼠标单击和窗口打开就是两种典型的事件。 对象观察器类包括Properties选项卡和Events选项卡 下图两个对象观察器,左边一个按种类排序,右边一个按名字排序。注意:帮助系统是和对象观察器紧密结合在一起的,想了解某个属性或事件的帮助信息,只要在该属性或事件上按下F1 键 图1-5 按种类或名称查看Object Inspector4.代码编辑器代码编辑器 代码编辑器是输入代码来指定应用程序行为的地

6、方,也是Delphi根据应用程序中的组件自动生成代码的地方。当向应用程序中加入一个窗体时,Delphi会自动创建一个新的单元,并添加到代码编辑器顶部的标签中。5.代码浏览器代码浏览器 以一种树状视图方式显示列在代码编辑器中的单元文件。通过它,可以方便地在单元文件中漫游或在单元文件中加入新的元素或者把已有的文件改名。要记住代码浏览器和代码编辑器有一对一的关系。 6.源代码生成器源代码生成器 当对窗体设计器中可视化组件进行操作时Delphi IDE自动生成Object Pascal源代码。 当用【File】|【New】|【Application】菜单命令创建一个新的项目时,将看到屏幕上出现一个空白

7、的窗体设计器,同时,代码编辑器中会自动出现一些代码,如下所示:unit Unit1;interfaceuses 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 *.dfmend. 从上述源代码清单中可以看出,窗体对象是从TForm继承下来的

8、。 下面这一行非常重要: $R*.dfm Pascal语言中的$R指令用于加载一个外部资源文件。*.dfm文件中包含在窗体设计器中创建的表单的二进制代码。其中的“*” 表示与当前单元文件同名的文件。 项目文件的扩展名是.dpr 可以选择主菜单下的【Project】|【View Source】命令把项目源文件调入代码编辑器。 如下用程序示例的项目文件: program Project1;uses Forms, Unit1 in Unit1.pas Form1;$R *.resbegin Application.Initialize; Application.CreateForm(TForm1,

9、Form1); Application.Run;end.当添加表单和单元时将出现在uses子句中 1.2.2 基于组件的编程思想基于组件的编程思想 .早期DOS操作系统和C语言主导的时代,“数据结构+算法”成为构建软件惟一方式 .C+语言和面向对象技术 . 20世纪90年代中期流行一种崭新的程序设计概念 :软件可以由可互换的组件构成 组件是一种通过公开的属性、方法、事件,是可以重复使用的一种经过编译的二进制文件,其文件名可以是.OCX或者是.dll,如命令按钮、复选框、单选框、滚动条等都是常见的组件。 1.2.3 Delphi 7的特点的特点 Delphi最显著的特点就是高效性和稳定性,主要体

10、现在以下4个方面:可视化开发环境的性能。编译器的速度和已编译代码的效率。编程语言的功能及其复杂性。丰富的VCL1.可视化开发环境可视化开发环境 可视化开发环境通常可分为3个部分:编辑器、调试窗口和窗体设计器。 2.编译器的速度和已编译代码的效率编译器的速度和已编译代码的效率 Pascal编译器最著名特点就是速度快,而Delphi正是建立在这种编译器基础之上的。 增加了链接和各种缓存策略,尤其是在Visual C+和C+ Builder中。3.编程语言的功能及其复杂性编程语言的功能及其复杂性 汇编是一种最有力的语言,即便是用汇编开发最简单的应用程序,难度也非常大,还可能一无所获。 4.丰富的丰富

11、的VCL VCL是Delphi7最重要的组成部分,包含不同种类的组件 。1.2.4 帮助的使用帮助的使用(1)当遇到问题时,可以尝试按下【F1】键,一般情况下Delphi都会准确地定位。 (2)如果需要浏览系统的一些帮助内容,比如说对象Pascal语言,可以通过菜单【Help】|【Delphi Help】命令打开【帮助主题:Delphi Help】对话框,在目录标签中展开相关条目,进行系统学习。3)当使用Windows API函数时,通过【Help】|【Delphi Help】打开的【帮助主题:Delphi Help】对话框中,在【索引】选项卡中可能查不到有关的帮助信息,有两种解决办法: 一种

12、办法是在代码编辑器中输入Windows API函数的名称,然后将光标定位到该名称中,接着按下【F1】键。 另一种办法是通过【Help】|【Windows SDK】打开帮助文件Win32.hlp,在【索引】选项卡中查找。(4)帮助文件打开时,要浏览相关内容,可以按下工具栏中的【】或【】按钮,通常这样是在同一个主题中浏览。通过一些See Also热链接,也可以查看相关的帮助内容。(5)在组件栏上右击,通过快捷菜单的Help命令,可以查看有关组件的帮助内容。 (6)在Delphi集成开发环境中,通过【Help】|【Customize】命令可以打开【Open Help】窗口,在该窗口中可以对帮助文件进

13、行管理,其中包括帮助内容、帮助索引、链接位置和帮助工程文件等的管理。1.3 简单简单Delphi程序设计程序设计 Delphi 7编写应用程序包括新建应用程序、设置窗体属性、添加组件、设置组件属性、添加事件、编写事件响应代码、编译运行等1.新建应用程序新建应用程序 启动Delphi 7,选择【File】|【New】|【Application】菜单,新建一个应用程序。2.设置窗体属性设置窗体属性 单击【Object Inspector】,在对象观察器中打开【Properties】选项卡,单击Caption属性右侧,输入窗体的新标题“窗口”。3.向窗体中添加组件向窗体中添加组件 单击Standar

14、d选项卡上的Button组件,将鼠标指向窗体中的任意位置(标题栏除外),单击鼠标,即可把Button1组件放入窗体中。或者直接双击组件面板上的Button组件,也可以在窗体中添加一个Button1组件。4.设置组件属性设置组件属性 选中组件,单击Object Inspector的标题栏以激活对象观察器,并选择Properties选项卡。在对象观察器中单击要设置的属性,进行属性设置。5.添加事件添加事件 选中要添加事件的组件,激活对象观察器,并选择Event选项卡,在对象观察器中单击要添加的事件,在其右侧输入事件的响应函数名称,然后回车即可。 6.编写事件响应代码编写事件响应代码 选定要编写事件

15、响应代码的组件 ,打开Event选项卡,双击要编写响应代码的事件右侧的空白部分,进入代码编辑窗口。 procedure TForm1.Button1Click(Sender: TObject); /单击放大按钮,窗口将放大beginform1.Height:=form1.Height+10; /窗口高度10form1.Width:=form1.Width+10; /窗口宽度10end;procedure TForm1.Button2Click(Sender: TObject); /单击缩小按钮,窗口将缩小单击缩小按钮,窗口将缩小Beginform1.Height:=form1.Height-1

16、0; /窗口高度减窗口高度减10 form1.Width:=form1.Width-10; /窗口宽度减10end;procedure TForm1.Button3Click(Sender: TObject); /关闭窗口beginclose; /退出end;7.编译运行程序编译运行程序图1-6 例程运行界面1.4 Delphi上机步骤上机步骤1.启动程序启动程序2.添加组件添加组件在窗体设计器中添加如图1-7所示的各组件。3.设置组件属性设置组件属性4.编写代码编写代码组件属性设置完成后,编写如下代码:图1-7 窗体布局图 procedure TForm1.Edit1Change(Sende

17、r: TObject); /编辑框1中的内容改变时的事件 var stringlength:integer; /定义整型变量,记录编辑框1中字符的个数 begin stringlength:=edit1.GetTextLen; /得到编辑框1中字符个数 edit2.Text:=inttostr(stringlength); /编辑框2显示编辑框1中字符个数 end; procedure TForm1.Button1Click(Sender: TObject); /关闭窗口 begin close; end;5.保存工程保存工程保存工程分为保存单元文件和保存项目文件两步。 第一步是保存单元文件,

18、单击工具栏上的Save按钮,将打开Save Unit1 As窗口,默认的单元文件名是“Unit1.pas”,以“.pas”为扩展名,单元文件名根据需要可以另取 。 第二步是保存项目文件,单击工具栏上Save Project1 As按钮,默认的项目文件名是“Project1.dpr”,工程文件名根据需要可以另取以“.dpr”为扩展名 6.运行工程运行工程保存工程结束后即可运行工程 小结小结 在本章中,主要介绍了Delphi的产生和发展,Delphi的特点,使用Delphi进行程序设计的一些基础知识。本章的重点是Delphi的开发环境和开发方法,通过实例介绍了Delphi的程序设计和上机操作的一般

19、步骤。图1-10 工程运行界面图第第2章章 Delphi语法基础语法基础 2.1 保留字与标识符保留字与标识符2.1.1 标识符标识符标识符是Object Pascal语言中各种成分的名称,这些成分包括变量(Var)、常量( C o n s t ) 、 类 型 ( T y p e ) 、 过 程(Procedure)、函数(Function)、方法(Method)、单元(Unit)等。 标识符可以分为三类:标准标识符、自定义标识符和限定标识符。1标准标识符 (1)标准常量,如False、Maxint、True等; (2)标准类型,如Boolean、Char、Real等; (3)标准函数,如Si

20、n、Cos、Abs、Arctan等; (4)标准过程,如Dispose、Get、New、Pack、Put等; (5)标准文件,如Input、Output等。 2自定义标识符程序员根据程序设计的需要,自己定义的常量、变量、类型、函数、过程等所取的名字。自定义标识符可以由任意长的一个不带空格的字符串组成,包括字母AZ 、az 、数字09 和下划线“_”等。定义标识符需要遵循以下规则: (1)标识符不区分大小写; (2)标识符只能以字母或下划线开头,不能以数字开头; (3)标识符可任意长度,但只有前225个字符有效; (4)标识符中间不允许有空格; (5)不允许使用Object Pascal语言的保

21、留字作为标识符。 3限定标识符在Delphi程序中可引用多个单元,而各个单元中全局变量、函数、过程等可能会同名,在引用时需用限定标识符来区分它们: Var Y:real; Y:=System.cos(pi);其中System称为限定符 ,而System.cos称为限定标识符。 2.1.2 保留字保留字保留字由系统规定具有特定意义,不能被重新定义或作他用,定义了65个保留字 。注意: 1单词at和on具有特殊含义,不要与它们同名。 2保留字和Object Pascal一样不区分大小写。 3Delphi集成开发环境的代码编辑器中,黑体显示保留字和指令字,定义时不要与这些黑体字一样。 Object

22、Pascal的保留字 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 prog

23、ram property raise record repeat resourcestring set shl shr string then threadvar to try type unit until uses var while with xor 2.1.3 指令符指令符指令字只在特殊的程序位置、或当上下文关联时有意义的程序区段有自己特殊的意义,而在其他场合,用户可对其重新定义,即可将其定义为标识符,Object Pascal不会指示出错,当用户重新定义这些指令字后,在作用域内它们就失去了原来的意义了。Object Pascal中规定的指令符有39个说明:指令符private、pro

24、tected、public、published和automated在定义对象类型时也作为保留字,而在其他场合则作为指令符。2.1.4 注释注释注释可增加程序的可读性和可维护性。 Object Pascal语言中注释有三种形式: 1组合符号“”与“”的成对使用表示它们之间的内容为注释部分。 2组合符号“( *”与“* )”的成对使用表示它们之间的内容为注释部分。 3符号“/ ”的单个使用表示所在行的该符号之后的内容为注释。 注意: 1注释符“”与“”、“( *”与“* )”在使用时不支持注释的嵌套,而且必须成对使用。 2对于单行和少量几行注释使用符号“/ ”,对于大块注释使用“”和“”或“( *

25、”和“* )”。 3有时可利用注释在代码中形成一个醒目标志。 4在注释符“”或“( *”后紧接着是一个美元符号“$”时,表示该句是一个编译器指令,它与普通的注释不同,通常用来对编译过程进行设置。2.2 数据类型数据类型描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序加工处理的符号的集合称为数据。 数据类型可以分为标准数据类型及高级数据类型等,还可以通过数据类型声明语句在预定义数据类型的基础上定义新数据类型。说明: 1标准数据类型属于Object Pascal内部约定的数据类型,无需定义就可以直接使用。 2高级数据类型体现了特殊的数据结构,在使用之前必须由用户自己定义。 3数据类型中

26、整型、字符型、布尔型、枚举型和子界型被称为顺序类型,其取值是一个有序集合,每一个可能取值都与顺序有关。2.2.1 数值型数据数值型数据数值型数据可分为整数类型和实数类型。1.整数类型 整数类型是存储整数数据的类型 ,分为基本整形和一般整形。基本整形:短整型 、小整型 、长整型 、64位整型 、字节型 、字型 、长字型 一般整形:整型 、序数型 注意:尽量使用一般整型Integer和Cardinal,可以最大限度发挥CPU和操作系统的性能。 2.实数类型实数类型是存储实数数据的类型 ,分为基本实型和一般实型。基本实型:单精度实型 、扩展型 、双精度实型 、货币型 一般实型:实型 注意:Real

27、类型与Double 类型完全等价。Currency类型至少有4位有效的小数位。 2.2.2 字符型数据字符型数据 Object Pascal中的字符型数据可以分为字符型和字符串型2类7种。1.字符类型Object Pascal包括3种形式的字符型数据 类型类型 名称名称 字节数字节数 取值范围取值范围 Ansi字符型 AnsiChar 扩展ANSI字符集 宽字符型 WideChar UniCode字符集 字符型 Char ()扩展ANSI字符集 说明:(1)前2种为基本字符类型后一种为一般类型。(2)Char与AnsiChar完全等价,但Char常用。 2.字符串类型字符串类型是存储字符串数据

28、的类型 ,Object Pascal包括了4种形式的字符串型数据 类型类型 名称名称 最大长度最大长度 所需内存空间所需内存空间 短字符串型 ShortString 255个字符 2256B 长字符串型 AnsiString 231个字符 42GB 宽字符串型 WideString 230个字符 42GB 字符串型 String 231个字符 42GB 说明:()AnsiString类型的定义是动态分配的,内容由AnsiChar类型的字符组成,长度仅受可用内存空间的限制,以空字符Nul作为结尾。()String字符串类型,既可以是ShortString类型也可以是AnsiString类型,默认

29、定义是AnsiString类型。2.2.3 布尔型数据布尔型数据布尔型数据用于关系运算和条件语句的逻辑运算,包括4种形式的布尔型数据。 说明:(1)后3种类型是为了兼容其他语言而设置的,编程时应尽量使用Boolean类型。(2)Boolean取值为False和True两个符号常量。类型类型 名称名称 字节数字节数 取值取值 布尔型 Boolean 只能为0(False)或1(True) 字节布尔型 ByteBool 0(False)或非0(True) 宽布尔型 WordBool 0(False)或非0(True) 长布尔型 LongBool 0(False)或非0(True) 2.3 常量与变

30、量常量与变量2.3.1 常量常量常量即在程序的执行过程中其值不能改变的量。 常量有两种,一种是常量值本身,也称为直接常量;另一种是要用声明定义的标识符表示的常量,也称为声明常量。声明常量又可以分为符号常量和类型常量。1.直接常量直接常量是指在程序中直接引用的常数,如整型常数、实型常数、字符型常数、字符串型常数和布尔型常数。 2.声明常量(1)符号常量 在程序中,某一个常数反复多次出现,可以定义一个标识符来代表该常数,这个标识符就是符号常量,其值在定义后不会改变。也称纯常量。定义符号常量使用常量说明语句,其语法格式为:Const =; =;其中Const是保留字,表示常量定义段开始 。注意:保留

31、字Const可单独一行也可与常量一行。不能在程序中给常量另行赋值,否则将导致语法错误。Delphi由常量值判断常量名属于哪种类型。(2)类型常量类型常量用于保存数组、记录、过程以及指针等类型的值,不能出现在常量表达式中。在默认的编译器状态下,类型常量的值可改变,但当在程序中加入编译命令$j-时,则类型常量的值在运行期就无法改变。 声明类型常量的语法规则为:Const :=;其中类型是除文件型和可变型的所有类型,常量值可以是和类型相应的常量表达式。 2.3.2 变量变量1.变量的声明变量在单元、函数或过程的声明部分进行声明,声明的位置决定了变量的作用域。声明包括两部分:变量名和它所属的类型,变量

32、声明的语法格式为:Var :;:;当多个变量具有相同数据类型时,格式如下:Var ,:;其中,Var是保留字,表示变量声明段的开始;同类型的可超过一个,间用“,”分隔;可以是基本数据类型或是由用户定义的高级数据类型; 2.变量的使用一旦声明了一个变量应及时对它进行初始化,最简单方法就是给变量赋值,在表达式中使用变量。 2.4 运算符与表达式运算符与表达式按照操作数数目的多少来分,运算符分为下面两类:单目运算符和双目运算符。单目运算符一般放在操作对象的前面,双目运算符都放在两个操作数之间。表达式是表示某个求值规则的运算公式,由运算符和配对的圆括号将常量、变量、函数、对象等操作数以合理的形式组合而

33、成。 2.4.1 算术运算符与算术表达式算术运算符与算术表达式1.算术运算符算术运算符对浮点数和整数进行加、减、乘、除和取模运算,取正“+”和取负“-”是单目运算符,其他均为双目运算符。 说明:(1)+、-、*运算中,参加运算的数可以是整型和实型,结果自动向精度高的类型转化。(2)参加除法运算“/”,结果都是实型的商。(3)参加整数除法“Div”和求余运算“Mod”的数必须是整型,结果也是整型数,符号与被除数的符号相同,小数部分被舍去。(4)在表达式a/b、a Div b和a Mod b中,如果b的值为0,将会触发一个错误。 2.算术运算符的优先级 同级运算自左至右,如果含有括号,则先计算括号

34、内表达式的值。3.算术表达式 将数学式改写为算术表达式,考虑三个问题:一是语法,二是优先级,三是类型。 优先顺序优先顺序 运算符运算符 +、-(取正、取负) *、/(法、除法) Div、Mod(整除、求余) +、(加法、减法) 说明:(1)数学式中省略的运算符和表示函数参数的括号必须添加上去 (2)必须注意优先级的处理 ,恰当利用标准函数 ,注意数据类型。 2.4.2 逻辑运算符与布尔表达式逻辑运算符与布尔表达式逻辑运算符可分为布尔运算符、位运算符和关系运算符。1.布尔运算符只能对两个布尔型操作数进行运算,结果仍为布尔型,True或False。其中,NOT是求“非”,为一元运算符 ; AND是

35、求“与”,OR是求“或”,XOR是求“异或”,均为二元运算符 。 2.位运算符运算符运算符 操作举例操作举例操作数类型操作数类型 结果类型结果类型 功能说明功能说明 NOT NOT x integer integer 即按二进制形式将每位求反AND a AND b integer integer 将两者相对应的位进行AND运算OR a OR b integer integer 将两者相对应的位进行OR运算XOR a XOR b integer integer 将两者相对应的位进行取XOR运算,两者不同时结果为1 SHL a SHL b integer integer 将a的二进制值向左移动b位

36、,左移一位相当于乘2 SHR a SHR b integer integer 将a的二进制向右移动b位,右移一位相当于除2 注意:右移操作时原值的低位丢失,高位补0;左移操作时原值的高位丢失,低位补0。 3.关系运算符关系符关系符 操作操作 操作数类型操作数类型 结果类型结果类型 = 等于 简单类型,字符串或可变类型,类,类引用,指针,集合类型 Boolean 不等于 简单类型,字符串或可变类型,类,类引用,指针,集合类型Boolean 大于 简单类型,字符串或可变类型 Boolean = 大于等于 简单类型,字符串或可变类型 Boolean 4.布尔表达式布尔表达式由布尔运算符和布尔类型的操

37、作数所组成,包括关系运算表达式和运算结果为布尔类型的函数,如Odd(x)、FileExists(x)、等。但位运算符的结果是整数类型,不能直接作为布尔操作数。2.4.3 字符串运算符 连接运算符“+”主要用于连接两个或更多的字符串。最简单的字符串表达式是字符常量、字符串常量、字符变量、字符串变量或字符函数的引用。字符串表达式格式为: +| 当两个字符串用连接运算符连接起来后,第二个字符串直接添加到第一个字符串的尾部,结果是包含两个源字符串全部内容的新字符串。如果要把多个字符串连接起来,每两个字符串之间都要用“+”号分隔。 2.4.4 运算符的优先级优先顺序优先顺序 运算符运算符 分类描述分类描

38、述 1(取地址),NOT,- 一元运算符 2*,/,DIV,MOD,AND,SHL,SHR 乘除及类型强制转换运算符 3+,OR,XOR 加减运算符 4=, =,in,is 关系、集合成员及类型比较运算符 2.5常用系统函数与过程常用系统函数与过程2.5.1 数值运算函数 Delphi的数值运算函数包含了常用的数学函数(如三角函数、对数函数等)和适合计算机数据处理的其他函数(如求数组中的最大值、求三角形的斜边长等)。2.5.2 字符处理函数 对字符的处理主要包括:大小写转换、比较先后顺序、合并、查找、截取、插入、求长度以及类型转换等。 2.5.3 日期时间函数 调用日期时间函数可对日期和时间进

39、行处理 2.5.4 顺序类型函数1.顺序类型 顺序类型指整型、字符型、布尔型、枚举型、子界型5种数据类型,如下所述: (1)整数的的序数是其自身; (2)字符的序数是其ASCII 码; (3)布尔型数据:False序数为0,True为1; (4)枚举型第一个数据序数为0,其余类推; (5)子界型第一个数据序数为1,其余类推。 除第一个序数,每一个都有一个前趋值;除最后一个序数,每一个都有一个后继值。2.顺序函数 2.6语句语句2.6.1 语句的基本概念语句的基本概念按执行时间可分为:声明语句和可执行语句。顺序函数顺序函数 引用形式引用形式 函数功能描述函数功能描述 序数函数 Ord(x); 返

40、回数据x的序数 前趋函数 Pred(x); 返回数据x的前趋值。如果将Pred函数用于第一个数据,就可能产生一个编译时的错误 后继函数 Succ(x); 返回数据x的后继值。如果将Succ函数用于最后一个数据,就可能产生一个编译时的错误 首序数函数 Low(x); 返回顺序型数据x取值集合中的第一个值(序数最小)。它还可以返回数组的第一个元素 末序数函数 High(x); 返回顺序型数据x取值集合中的最末一个值(序数最大),它还可以返回数组的最末一个元素 声明语句包括单元说明语句、类型说明语句、变量说明语句、过程说明语句、函数说明语句和程序区段标识语句等。 可执行语句包括赋值语句、运行控制语句

41、和结构控制语句等。 按语句的描述形式,可分为简单语句、结构语句和复合语句等。 简单语句只含有一个语句定义符或特殊标志;结构语句往往含有多于一个的语句动词;复合语句则是由begin和end括起来的若干个简单语句、结构语句和复合语句,允许复合语句多层嵌套,或为空,也就是在begin和end之间没有其他语句。 2.6.2 常见声明语句常见声明语句1.标号声明语句 标号声明语句即用一个整型数来表示程序的某个执行语句,一行标号声明语句可以同时声明几个标号,其用法如下所示: label Aa,Ab; var I:integer; begin /语句 if(I=0) then goto Aa; /语句 Aa

42、:begin /语句 end; end;2.类型声明语句在Object Pascal中,所有的变量必须是某种特定的数据类型,类型决定了它所能包含的数值和可进行的操作,用类型声明语句可以定义新的数据类型。例如:TypeTmyDim:Array1.10,1.5 of Double;3.过程声明语句过程可以被看成一段小程序,用来实现某种特定的目标,在完整的程序中它被当作一个语句来执行。在建立过程之前应先声明。procedure NumString(N:Integr;Var S:string);4.函数声明语句函数与过程相似,主要区别在于函数必须有返回值,函数的声明参见下面的语句,其中,最后的Real

43、表示函数的返回数据类型。Function Power(X:Real;Y:Integer):Real;2.6.3 赋值语句和程序的顺序结构赋值语句和程序的顺序结构1.赋值语句赋值语句的语法格式为::=;2.类型兼容类型兼容是指数据类型不完全相同的量之间能进行的运算和赋值操作。 3.利用赋值语句给对象属性赋值由于属性总是归属于对象才有实际意义,所以引用属性时用符号“.”来连接表示其隶属关系。如组件Editl的字体的颜色属性表示为:Editl.Font.Color。 4.顺序结构顺序结构是最简单、最常用的结构。在该结构中,各操作块按照出现的先后顺序依次执行,不产生程序流程的其他转移。它是任何程序的主

44、体结构,即使在选择结构或循环结构中,也常以顺序结构作为其子结构。通常由若干个赋值语句或其他简单语句构成 。2.6.4 条件语句和程序的选择结构条件语句和程序的选择结构实现选择结构的是IF语句和Case语句,这两种语句又称条件语句,条件语句的功能就是根据表达式的值有选择地执行一组语句。 1.if语句通过条件的布尔表达式值选择执行路径。if then else ;if语句分为简单条件语句和复合条件语句。简单条件语句的中不包含其他的条件语句 。如果在If语句格式中的或本身又是一个If语句,则称为If语句的嵌套,嵌套的If语句又被称为复合条件语句。 2.Case语句Case语句用来实现多分支选择结构。

45、Case语句描述了多路择一的功能,它根据“选择器表达式”的值决定执行相应的语句。Case语句的语法格式为: case of:;:;else ;end;说明:的值必须是顺序类型 。2.6.5 循环语句和程序的循环结构循环语句和程序的循环结构从某处开始有规律地反复执行某一程序块的现象称为“循环”,完成这一功能的程序结构为“循环结构,”而其中重复执行的程序块称为“循环体”。循环结构语句有3种,它们分别是:While 语句、Repeat语句以及For语句。 1.While语句While语句属于前测型循环结构。首先判断条件,根据条件决定是否执行循环,执行循环的最少次数为0。其语法格式为: while d

46、o ;说明:可在(循环体)中任何位置Break语句来终止While 循环,Break 语句通常位于IF语句后。可在循环体中任何位置放置Continue语句,以便在整个循环体没有执行完就重新判断(条件),以决定是否开始新的循环。Continue语句通常位于IF 语句之后。 2.Repeat语句Repeat语句属于后测型循环结构,首先执行循环体,然后判断条件,根据条件决定是否继续执行循环,执行循环的最少次数为1。 repeat until ;3.For语句若知道要执行多少次循环时,则使用For循环结构。For循环使用一个循环变量,每重复一次循环之后,循环变量的值就会自动增加或者减少。For语句的语

47、法格式为: for =to|downto do ;说明:只能是顺序类型,TO表示计数器递增,DownTo表示计数器递减。 4.循环的嵌套循环语句的循环体中仅包含了简单语句,称为单重循环。 如果在循环体中又包含了另一个循环结构,则称为多重循环,又称为循环的嵌套。在循环体中的嵌套称为内循环,外部的循环称为外循环。多重循环嵌套根据循环结构嵌套层数可以分为二重循环、三重循环等。 5.循环的中断特殊情况下,需要中断正在执行的循环,可以使用break语句或Continue语句。可以放在循环体的任意位置,通常放在If语句之后。 执行Break语句的结果是:跳出整个循环,执行之后的语句。执行Continue语

48、句的结果是:跳出本轮循环,然后判断循环条件是否成立,再决定是否开始新一轮的循环。小结小结本章主要介绍了Object Pascal的最基本的语法,主要包括基本词法、基本数据类型、常量与变量、运算符与表达式、常用函数与过程、语句等。第3章 常用组件 Delphi 7.0的组件板上含有27个选项卡,总共包括350多个组件,如图所示 :3.1 窗体窗体 3.1.1 Form组件组件 窗体是应用程序的操作界面,是放置组件的基础。窗体由标题栏、工作区和边界组成。 图3-1 组件板和选项卡运行界面图1. Form的主要属性窗体组件(TForm)在运行时表现为一个窗体,窗体是一个容器构件,它可以包含其他种类的

49、构件,并协同完成应用程序的整体功能。窗体由属性、事件和方法组成。(1)BorderIcons属性 用来制定窗体标题栏上的图标 (2)BorderStyle属性 Borderstyle属性用来设置窗体的外观和边框 (3)Name属性 Name属性唯一地标识对象,取值不能为空,若工程中有多个窗体,名称不能相同。 (4)Caption属性用来指定窗体标题栏中说明文字,可以为空。(5)Font属性Font属性用来设置窗体中文字的字体、颜色和字号等等,其中Font.style属性为集合型。(6)FormStyle属性FormStyle属性用来指定窗体的类型。从窗体类型的角度来看,Windows环境中的应

50、用程序可以分为以下三类。第一类:多文档界面(MDI)应用程序一般这种应用程序具有一个父级窗口和多个子窗口,可以同时打开多个文档,分别在多个子窗口中显示。 第二类:单文档界面(SDI)应用程序这种应用程序同时只能打开一个文档。第三类:对话框应用程序这种应用程序的主界面基于一个对话框类型的窗体。 (7)Icon属性Icon属性用来指定标题栏中显示的图标。 (8)Position属性Position属性用来描述窗体大小和显示位置。 (9)WindowsState属性WindowsState属性来描述窗体显示状态 。2.TForm 的事件 窗体是一个可视化的组件,包括外部事件和内部事件。 3.窗体的方

51、法一些常用方法(过程或函数) 有:Create 、Close 、CloseQuery 、release 、Show 、ShowModal 、Print 。4窗体的创建 创建窗体的方法分为两种:静态创建和动态创建。所谓静态创建窗体是指再工程的编辑、设计时创建新窗体;而动态创建窗体是指在工程的运行时通过代码生成窗体。 (1)静态创建新窗体通过集成开发环境中的【File】|【New】|【Application】菜单,创建一个应用程序, 此时自动生成一个窗体Form1,再打开【File】|【New】|【Form】菜单生成一个窗体Form2。在Form1中添加两个Button、1个Label组件,For

52、m2中添加1个Label组件,即可完成界面设计。 添加代码:procedure TForm1.Button1Click(Sender: TObject); /创建按钮事件begin /关键分析 form2.show; /调用Show方法显示Form2窗体end;procedure TForm1.Button2Click(Sender: TObject);begin form1.Close;end;程序分析:编译上述工程时,系统会弹出出错提示信息,单击“Yes”按钮,Delphi将自动在Unit1单元中添加对Unit2单元的引用。 (2)动态态创建新窗体在需要某个窗体时,临时创建它,使用后将其立

53、即释放,这种称为窗体的动态创建。 3.1.2弹出对话框窗体弹出对话框窗体Delphi提供内部对话框有两种。第一种:信息输出对话框Showmessage过程、ShowMessageFmt过程、MessageDlg函数、MessageDlgPos函数、CreateMessageDialog函数。 第二种:信息输入对话框InputBox函数、InputQuery函数。1ShowMessage过程 其语法格式为:ShowMessage(); 2ShowMessageFmt过程的语法格式为: ShowMessageFmt(,);3MessageDlg函数函数其语法格式为:其语法格式为:=MessageD

54、lg(,HelpCtx); 4MessageDlgPos函数 其语法格式为:=MessageDlgPos(,HelpCtx,X,Y); 可以指定对话框的显示位置坐标:X,Y。 5CreatMessageDialog函数其语法格式为:=CreatMessageDialog (,);6InputBox函数函数其语法格为:其语法格为:=InputBox (,);7InputQuery函数其语法格式为:=InputQuery (,);3.2 输入显示类组件输入显示类组件3.2.1 Edit组件编辑框(Edit)是一种通用组件,既可以输入文本,又可以显示文本,编辑框组件位于Standard组件板中。 图

55、3-7编辑框Edit 运行界面图1Edit的主要属性 (1)AutoSelect属性:设置编辑框得到焦点时,文本是否自动被选中。 (2)AutoSize属性:决定编辑框是否自动随字体的变化而改变大小。 (3)Enable属性 :用来设置编辑框是否能用。 (4)BorderSytle属性:设置编辑框边框类型 。(5)MaxLength属性:设所能接受最大字符数。(6)PasswordChar属性:设置非#0字符时,将代替用户输入的字符被显示。 (7)ReadOnly属性:定编辑框中的文本是否可以编辑。 (8)SelStart属性:被选中文本的开始位置,或光标在文本中的位置。(9)SelText属

56、性:被选中的文本 。(10)SelLength属性:被选中文本的长度。(11)Text属性:编辑框中的文本内容。(12)CharCase属性:控制编辑框中文本大小写 3.2.2 Label组件标签组件位于Standard组件板中。 图3-8 标签Label 运行界面图1Label的主要属性 (1)Caption属性:用来显示标签的文本。 (2)ShowAccelChar属性 :决定是否将&作为作为热键字符的标记。 (3)AutoSize属性:决定标签是否自动随文本的变化而改变大小 。(4)Alignment属性:决定对齐方式 。(5)Layout属性:控制文本显示在标签的位置。 (6)

57、WordWrap属性:控制是否折行显示。 (7)Transparent属性:决定背景是否透明。 (8)FocusControl属性:用来获得焦点组件名。 3.2.3 Memo组件组件备注框组件位于Standard组件板中。1Memo的主要属性备注框在Delphi中用Tmemo类处理,Tmemo类是Tedit类的衍生类,为了处理多行文本,Tmemo类还增加了一些新的属性。(1)CaretPos属性:得到光标在编辑区中位置。 (2)Lines属性:用来存放Memo对象的文本。 (3)Modified属性:确定文本是否被改动过。 图3-10 备注框 Memo运行界面图(4)ScrollBars属性:

58、决定备注框是否具有滚动条 。(5)WordWrap属性 :设置文本是否能够换行 。(6)WantReturns属性:用来设置备注框是否能插入“回车”键。 (7)WantTabs属性:用来设置备注框是否能插入“Tab”键。 2Memo的使用【例3.4】利用编辑框,把编辑框中的文本输入到Memo中。(1)界面设计 创建一个新的工程,在窗体中添加1个按钮Button1组件、一个编辑框Edit1组件和一个备注框Memo1组件,各组件的属性设置如图:(2)程序设计procedure TForm1.Button1Click(Sender: TObject);begin Memo1.Lines.Add(Ed

59、it1.Text); edit1.Text:=; edit1.SetFocus; end;图3-12 Memo示例运行界面图procedure TForm1.FormActivate(Sender: TObject);begin edit1.SetFocus;end;3.2.4 MaskEdit 组件组件 它限制用户在所定义的位置输入要求输入的符号。掩码编辑框(MaskEdit)组件位于Additional附加组件板”中。1MaskEdit常用属性图3-13 Memo示例运行界面图()EditMask属性EditMask属性用来控制用户输入数据格式的掩码字符串,掩码字符串EditMask属性分

60、为三个部分,用分号分隔。第一部分是掩码字符串的主要部分,它确定了数据的格式;第二部分决定是否将掩码中的字符串作为数据的一部分,0表示不作为数据的一部分,1表示作为数据的一部分,它将影响属性;第三部分指出在掩码中用来代表未输入数据的字符。(2)EditText属性:用来返回用户输入的数据。 3.3按钮类组件按钮类组件3.3.1 Button组件组件Button按钮在Delphi 7.0组件板Standard选项卡中 1.Button的主要属性(1)Caption属性:来制定按钮所显示的文字。(2)Cancel属性:决定改按钮是否为取消按钮 ,缺省值为False。(3)Default属性:用来决定改按钮是

温馨提示

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

最新文档

评论

0/150

提交评论