版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 Delphi概述,1.1 Delphi的特点与发展 1.1.1 主要特点 高效的集成开发环境(IDE); 面向对象程序设计语言; 可视化组件库; 稳定快速的编译器。,1.1.2 Delphi的发展 1995年Delphi 1在美国Borland公司诞生,从此开始了组件(Component)技术的时代,组件技术对计算机软件开发行业产生了深远的影响。 美国Borland公司随后推出了Delphi 2、 Delphi 3、 Delphi 4、 Delphi 5、 Delphi 6。 2002年Delphi 7诞生。 2004年11月推出了Delphi 2005 。 2005年11月又推出了D
2、elphi 2006,1.2 Delphi集成开发环境 1.2.1 Delphi的主界面,1.2.2 组成部分简介 1标题栏 2主菜单 3工具栏 4组件板 5对象树形视图 6对象监视器 7窗体 8代码编辑器窗口,1.3 面向对象编程与面向过程编程 1.3.1 面向对象编程的特点 面向对象编程的基本思想是:以对象为主体,以事件为驱动。 在面向对象编程中,窗体与组件设计是用户的重要工作之一,这些工作都是可视化操作。在可视化操作的幕后,Delphi为用户做了大量的工作,从而节省了用户的编程时间,提高了用户的编程效率 Delphi面向对象编程举例。,1.3.2 面向对象程序的组成 1. 单元文件 单元
3、文件扩展名为pas,表示其源代码是Object Pascal 语言。 2. 项目文件 项目文件扩展名为dpr,表示Delphi项目的含义,项目文件是组成应用程序的主程序 。 3. 窗体描述文件 窗体描述文件扩展名为dfm。应用程序中的每一个窗体都对应了一个窗体描述文件。,1.3.3 面向过程编程 Delphi还为用户提供了另一种面向过程的编程方式,在Windows操作系统产生之前,几乎所有的高级语言都是面向过程的,读者对此不会陌生。面向对象程序设计语言虽然逐步取代了面向过程程序设计语言,但面向过程编程中的许多编程技术在面向对象中仍然有用 。例如,面向对象编程中事件处理程序的编写仍然是面向过程的
4、 。 Delphi面向过程编程举例。,第2章 Object Pascal语言,2.1 标识符与注释 2.1.1 标识符的概念 标识符是程序中用来表示常量、变量、类型、过程、函数、程序、单元文件、窗体、菜单、对象等名称的符号。 1标准标识符 2用户自定义标识符 3保留字,2.1.2 注释的作用 注释是程序中用于说明或解释的一段文字,程序运行时并不执行。添加注释的主要作用是为了增加程序的可读性。 Delphi中的注释有两种方式:单行注释和多行注释。 单行注释:注释号“/”后的一行内容,不能 跨行。 多行注释:注释号“ ”或“(* *)”内括起来的内容,可以跨行。,2.2 数据类型 2.2.1 数据
5、类型概述 数据(Data)是对客观事物的数字、字符以及所有能输入到计算机中并能被计算机识别的各种符号的描述,是计算机程序处理的对象。数据类型(Data Type)是对同一类数据的抽象描述,它规定了数据的取值范围和定义在该类型上的操作集合 。 数据类型如图2-1所示 。,图2-1 Object Pascal中的数据类型,2.3 常量与变量 2.3.1 常量 常量(constant)是在程序运行过程中其值保持不变的量。根据使用方式的不同,可以将常量分为直接常量与符号常量。 1直接常量 直接常量就是在程序中直接使用的各种常量,包括数值型常量和非数值型常量,其中数值型常量称为常数,包括整数和实数,如整
6、型常量123、-156等,实型常量1.1、3.6E5等。非数值型常量有字符常量、字符串常量和布尔常量。例如,字符常量:v、3,字符串常量:delphi、123456,布尔常量:true和false。,2符号常量 符号常量是以标识符形式出现的常量。符号常量必须先定义后使用。定义符号常量的语法格式为: const 常量名1=常数值1; 常量名2=常数值2; 常量名n=常数值n;,2.3.2 变量的定义 变量(variable)是在程序执行过程中其值可以被改变的量,变量在使用前必须先声明。 声明变量的语法格式为: var 变量名1:类型名1=初始值; 变量名2:类型名2=初始值; 变量名n:类型名n
7、=初始值;,2.4 运算符与表达式 2.4.1 运算符 Delphi中的运算符主要有算术运算符、关系运算符、布尔运算符、位运算符等。 1算术运算符 算术运算符有加、减、乘、除、整除和求余。 2关系运算符 关系运算符用于对两个类型相容的量进行大小比较运算,运算结果为布尔类型。,3布尔运算符 布尔运算符对布尔类型的操作数进行运算,结果为布尔型。布尔运算符有:and(与)、or(或)、not(非)、xor(异或)。 4字符串运算符 Delphi只有一个字符串运算符“+”,表示连接运算符,用于将两个或多个字符串连接在一起形成一新的字符串。,5位运算符 Delphi有6个位运算符。 例如,字节型变量a=
8、5,b=6,对应的二进制数分别为:00000101和00000110,则有以下值: not a的值为:11111010,即十进制中的250。 a and b的值为:00000100,即十进制中的4。 a shl 2的值为:00010100,即十进制中的20。,6运算符的优先级 表达式中通常有多个运算符,在计算表达式的值时,优先级高的先运算,优先级低的后运算,优先级相同的按从左向右的顺序进行运算。各种运算符按优先级由高到低的顺序列出如下: (1)圆括号() (2)函数 (3)not (4)*、/、div、mod、and、shl、shr (5)+、-、or、xor (6)=、=、in,2.4.2
9、表达式 表达式是用运算符和圆括号()将运算对象(满足该运算要求的数据)连接起来的符合语法规则的运算式子。 运算对象可以是常量、变量及函数,圆括号用于改变运算次序。 在Delphi中,根据表达式结果值的类型,可以将表达式分为4类:算术表达式、布尔表达式、字符串表达式和集合表达式等。,2.5 语句与程序结构 在算法语言中,使用数据类型描述数据的性质,使用表达式描述对数据的运算,而使用语句描述对数据的操作。 程序是由一系列语句组成的,任意复杂的程序均可分解为三种基本结构:顺序结构、分支(选择)结构和循环结构,这三种结构也能够组合成任意复杂的程序。,2.5.1 顺序结构语句 顺序结构是程序设计中最常用
10、也是最简单的程序结构。顺序结构语句主要由赋值语句和过程语句等简单语句组成。 1赋值语句 赋值语句的语法格式及功能如下: 格式1: 变量名:=表达式; 功能:将赋值号“:=”右边表达式的值赋给左边的变量。 格式2: 对象.属性名:=表达式; 功能:将表达式的值赋给对象的属性。,2过程语句 系统定义了多种过程语句,用户在写程序时可直接引用。用于输入、输出的有读语句read和写语句write。 (1)读语句 有两种格式: read( 变量,变量, ); readln( 变量,变量, ); (2)写语句 也有两种格式: write( 项,项, ); writeln( 项,项, );,3复合语句 复合语
11、句是用保留字begin和end将若干条语句括起来作为一条语句使用。 例如: begin t:=x; x:=y; y:=t; end; 语法上最后一条语句与end之间没有分号,但如果加了分号,也不会产生语法错误,系统会认为其间有一条空语句。,2.5.2 分支结构语句 1If语句 格式1:if then 语句1; 功能:如果为true,则执行;如果为false,则不执行。 格式2:if then 语句1 else 语句2; 功能:如果为true,则执行;如果为false,则执行。,2嵌套的if语句 if语句可以嵌套使用,即在if语句的then或else之后的语句又是if语句。通常采用以下的语法格式
12、: if then else if then else ,3case语句 格式: case of 值1:语句1; 值2:语句2; 值n:语句n; else 语句n+1; end;,2.5.3 循环结构语句 Delphi实现循环结构的语句共有3种。 1while循环语句 while do ; 2repeat循环语句 repeat ; until ;,3for循环语句 for循环语句是“计数型循环”。 格式如下: 格式1:递增型for语句 for 循环变量:=初值 to 终值 do 循环体; 格式2:递减型for语句 for 循环变量:=初值 downto 终值 do 循环体;,2.5.4 bre
13、ak与continue语句 Object Pascal语言提供了2种用于控制流程的转向语句:break和continue。这两条语句通常用在循环语句的循环体内以控制循环语句的流程,常与if条件语句配合使用。 break语句只能用在循环体内,其功能是强行退出循环。 continue语句也用在循环体中,其作用是强行结束本次循环,转入循环开始处,开始执行下一次循环操作。,2.6 自定义数据类型 2.6.1 类型定义 对于每一种自定义数据类型,必须遵循“先定义,后使用”的原则。类型定义的语法格式为: 格式: type 类型名=类型; 说明: type是保留字。类型名的命名要符合自定义标识符的命名规则。
14、每种类型的定义都有各自的语法。类型定义出现在程序说明部分。,2.6.2 枚举类型和子界类型 枚举类型和子界类型都属于顺序类型,是两种用户自定义的简单数据类型。 1枚举类型 格式: type 类型名=(值1,.,值n); 说明: “type”为保留字,表示类型定义的开始 “类型名”为任意合法的自定义标识符 “值1”、“值2”“值n”均为自定义标识符,是枚 举类型中的所有数据元素,也称枚举常量。 枚举常量的序号从0开始依次向后计数,即“值1”的序号为0,“值2”的序号为1,依此类推。,2子界类型 子界类型指的是某个顺序类型(称为基类)的一个子集。定义子界类型的语法格式是: type 类型名=下界值
15、.上界值; 例如: type month=1.12; /定义子界类型month var months:month; /定义months为属于子界类型month的变量,2.6.3 数组类型 1一维静态数组的定义与使用 一维静态数组类型的定义格式为: type 数组类型名=array下标类型 of 基类型; 说明: array是保留字。下标类型一般为子界型;基类型是数组元素的类型,可以为任意类型。 例如,下面定义一个一维数组类型num: type num=array1.5 of integer;,2二维静态数组的定义与使用 二维静态数组比一维数组多一个下标,定义格式为: 格式1: type 数组类
16、型名=array下标类型1,下标类型2 of 基类型; 格式2: type 数组类型名=array下标类型1 of array 下标类型2 of 基类型; 例如: Type atype=array1.10,1.10 of integer; btype=array1.4,1.3 of real; 二维静态数组类型定义之后,还要声明二维数组变量,声明方式与一维数组相似。,3动态数组的定义与使用 静态数组在使用之前其类型及元素的个数均已确定,而动态数组没有固定的大小或长度,因此在程序运行时可为动态数组动态地分配存储空间。 一维动态数组的定义格式为: type 数组类型名=array of 基类型;
17、多维动态数组的定义格式为: type 数组类型名=array of array ofarray of 基类型;,2.6.4 集合类型 1集合类型的定义 集合(set)是具有相同性质但又可以区分开来的一组元素的整体。定义集合类型的一般格式为: 格式: type 集合类型名=set of 基类型; 说明:set、of是保留字。基类型即集合元素的类型,通常是:字符型、布尔型、枚举型和子界型四种顺序类型。集合元素个数不能超过256个,集合元素没有次序关系。,2集合类型的运算 (1)集合类型的值 集合类型的值放在一对方括号中,多个元素间用逗号分隔,或用子界方式表示连续的元素,每个元素可以表示为元素类型允
18、许的表达式。 例如: a.z /包含小写字母集合常量 0.9,20 /包含0到9及20的整数集合常量 (2)赋值运算 可以对集合变量进行赋值运算。例如: var s:set of 1.2; si:set of 0.100; s:= ; / 表示空集 si:=1.10,20;,(3)关系运算 关系运算符=、用于比较两个集合是否相等。=(包含)用于测试一个集合是否为另一个集合的子集。 例如: 1,2=1.6 /结果为false 注意:集合中没有运算。,(4)属于运算(in) 保留字in是一个关系运算符,用于测试集合元素类型的元素是否在某个集合中。例如: 1 in 1.9 /结果为true a in
19、 a.z /结果为true (5)集合运算 集合运算符有+(并)、-(差)、*(交)。运算规则同数学中的集合运算。例如: 1.3+3,5,7 /结果为1.3,5,7 1,2,3* /结果为 1.3-3,5,7 /结果为1,2,2.6.5 字符串类型 字符串类型(string)是以字符为元素类型的一维数组,并且在字符数组的基础上增加了许多功能。 1.字符串类型定义格式 格式: type 字符串类型名=string长度; 说明:string保留字。长度省略,表示字符串长度不确定。 例如: type string20=string20; /定义字符串类型string20,字符串最大长度为20 var
20、 s:string20; /定义字符串类型变量s,最大长度为20 。,2.字符串的运算 (1)字符串元素的运算 s1:=a; /对字符串第一个字符所在存储单元赋值为a (2)字符串变量的运算: 对字符串变量可以进行赋值、读、写、比较、连接等运算。例如: s:=china; readln(s); writeln(s); s:=china+nanjing; if sabcde then s:=123; (3)求字符串长度 用标准函数length(s)可以返回字符串s的长度。 当length(s)=0表示字符串s为空字符串。,2.6.6 记录类型 1记录类型的定义 记录类型是一个不同种类元素的集合,
21、每个元素称为字段(field)。在类型定义时,指定记录类型的名字和每个字段名。声明格式为: type 记录类型名=record 字段1:类型1; 字段2:类型2; 字段n:类型 n; end;,2记录类型的使用 (1)限定访问记录字段 格式: 记录类型变量名.字段名 说明:该格式为访问记录类型变量的某个字段。“.”是限定标识符,不能省略。 例如,访问记录类型变量stu read(stu.no); /访问stu变量的no字段,并通过键盘输入其数值。 :=liping; /访问stu变量的name字段,并对其赋值。,(2)使用开域(with)语句访问记录字段 格式: With 记录
22、变量名 do 语句; 说明:用with打开“记录类型变量名”指定的变量,下面访问其字段时就不需要再在字段名前加“记录类型变量名”了。例如: with stu do begin read(no); /省略字段名前的小圆点和记录类型变量名 name:=liping; sex:=male; age:=18; end;,3记录数组 如果记录作为数组元素的类型,则称为记录数组。 例如: var class:array1.50 of student; 说明class是一个具有50个元素的数组,数组元素的类型是前面定义的记录类型student。 class1代表第一条学生记录。,2.6.7 文件类型 在计算
23、机系统中,存放在外存储器中的数据集合称为文件(file)。在delphi中,文件类型是由相同类型的元素组成的有序集合。文件类型的声明格式为: type 文件类型名 = file of 基类型; 例如,声明一个文件类型RecordList,以上面定义的TdateRec为数据类型。 type RecordList = file of TdateRec; var Myrecordlist:RecordList;,2.6.8 指针类型 指针是指向物理存储单元地址的变量,用于表示动态的数据结构。 1指针类型及指针类型变量的定义 格式: type 指针类型名=基类型; 说明:基类型为指针所指向的动态变量的
24、数据类型。 例如: type dd=integer; /定义指针类型dd var p:dd; /声明变量p为指针类型dd,p可指向integr类型的变量,2指针所指向的动态变量 引用指针所指向的动态变量,可采用如下格式: 指针变量 例如: 指针p指向的动态变量为p。 若p的类型为integer,则可对p进行如下操作: P:=10; p:=p+20; readln(p); writeln(p);,3对指针变量的操作 (1)指针赋空值 p:=nil; nil是指针类型的常量,表示空值,可赋给任意指针变量,表示指针不指向动态变量 (2)指针获得变量的地址 用运算符可获得变量的地址。 var i:in
25、teger; p:integer; i:=10; /对整型变量i赋值为10 p:=i; /获得变量i的地址并赋给指针变量p writeln(p); /输出p的值,结果是10,(3)赋给另一指针值 两个基类型相同的指针变量可以进行赋值。例如: var p,q:integer; i:integer; p:=i; /获得变量i的地址并赋给指针变量p q:=p; /赋值后,p、q指向同一个动态变量,即有相同的地址 (4)关系运算(=、) 两个相同基类型的指针可以进行=、运算。 If p=q then q:=10 ; /两指针相等时,表示指向同一个动态变量 (5)标准过程new和dispose,2.7
26、过程与函数 2.7.1 标准过程与标准函数 过程和函数是实现一定功能的语句块,是程序中的特定功能单元,即子程序。 Delphi语言的过程有两种:标准过程与自定义过程。标准过程是系统内部预先定义好的,用户不必编写任何代码即可直接调用 。 函数也是完成某一功能的程序段,与过程的区别在于函数有返回值,而过程没有返回值。Delphi的函数也分两类:标准函数与自定义函数。,2.7.2 过程定义与调用 1过程的定义 自定义过程是由用户自己创建的过程,过程定义的形式如下。 格式: procedure 过程名 () ; /过程首部 局部说明部分 /过程说明部分 begin /过程体 语句体; end;,2.过
27、程的调用 自定义过程定义好后,必须通过调用才能被执行。要想调用某个过程,该过程必须在调用语句之前定义。过程调用语句的格式主要有: 格式1: 过程名(实参表); 说明:该过程有参数 格式2: 过程名;或过程名( ); 说明:该过程无参数 注意:有参数的过程,调用时实参的个数、位置、数据类型必须与形参一一对应,实参之间用逗号分隔。,2.7.3 函数定义与调用 1函数的定义 函数的定义是在程序的implementation部分,具体形式如下。 function 函数名 ():函数返回值的类型; /函数首部 局部说明部分; /函数说明部分 begin /函数体 ; := /也可以用Result系统保留
28、字代替 end;,2函数的调用 调用函数的一般格式如下。 格式1: 变量名:=函数名(实参列表); 格式2: 表达式 运算符 函数名(实参列表); 说明:函数的调用只能在表达式中。函数有一个返回值,可以和同类型的数据一样作为表达式或表达式的一部分参加运算。,2.7.4 形式参数的三种类型 函数或过程定义时参数列表中的参数称为形式参数,简称形参;而函数或过程调用时参数列表中的参数称为实在参数,简称实参。 在过程或函数调用时,形参与实参必须一一对应,且类型一致。在过程或函数定义时,形参有三种类型:值参、变量参数和常量参数。,2.7.5 全局变量与局部变量 在主程序或函数、过程的说明部分都可以说明标
29、识符作为常量名、变量名、类型名等,但在不同地方说明的标识符的有效范围是不同的。变量的作用范围被称为变量的作用域。 如果变量在一个过程或函数中定义,则该变量只能在该过程或函数中使用,这样的变量称为局部变量。 如果变量是在过程或函数之外声明的变量,则称为全局变量。,第3章 窗体与常用组件,3.1 窗体组件 3.1.1 主要属性 窗体是Delphi最基本的组件,也是应用程序的界面。 Name : 窗体组件的名称,字符串类型。每个组件的名称都是唯一的。 Caption :窗体标题,字符串类型。 Enabled :逻辑类型,设置窗体的有效性。值为True时,窗体有效。值为False时,窗体及窗体中的所有
30、组件均无效。默认值为True。 Visible :逻辑类型,设置窗体的可视性。值为True时,窗体可见,默认值为True。, Left:窗体左上角在屏幕上的横坐标,整型,以像素为单位。 Top:窗体左上角在屏幕上的纵坐标,整型,以像素为单位。 Height:窗体的高度,整型,以像素为单位。 Width:窗体的宽度,整型,以像素为单位。 ClientHeight:窗体工作区的高度,整型,以像素为单位。 ClientWidth :窗体工作区的宽度,整型,以像素为单位。 Color:设置窗体工作区的背景颜色。 WindowsState:设置窗体运行时的正常、最大、最小等状态。默认值为正常。,3.1.
31、2 常用事件 每一个组件都有属性、方法、事件三要素,事件是面向对象编程中非常重要的概念。事件是指程序运行时,针对作用于某一个组件上的某一个动作的响应。比如,应用程序运行时,用户单击窗体,Delphi要对“单击”这一动作做出响应,即触发窗体的OnClick事件(单击事件)。作用于组件上的动作可以是用户产生的,也可以是系统产生的。由用户动作触发的事件被称为用户事件,比如窗体的单击事件(OnClick事件)和双击事件(OnDblClick事件)。由系统触发的事件被称为系统事件,比如窗体的OnCreate事件和OnShow事件。,窗体的主要事件介绍如下: (1)OnCreate事件 当应用程序运行时,
32、在创建窗体之前触发该事件。OnCreate事件处理程序一般用于应用程序的初始化工作。 (2)OnShow事件和OnHide事件 当窗体被显示时,触发OnShow事件。当窗体被隐藏时,触发OnHide事件。 (3)OnActivate事件和OnDeactivate事件 当窗体被激活时,触发OnActivate事件。当窗体失去焦点时,触发OnDeactivate事件。 (4)OnClose事件 在窗体被关闭之前,触发OnClose事件。 (5)OnClick事件和OnDblClick事件 用户单击窗体时,触发OnClick事件。用户双击窗体时,触发OnDblClick事件。,3.1.3 应用实例
33、【例3-1】利用窗体的OnCreate事件,设置窗体的标题、高度、宽度以及工作区的背景颜色。利用窗体的OnClick事件改变窗体的标题、工作区的背景颜色。利用窗体的OnDblClick事件改变窗体的标题、工作区的背景颜色并将窗体最大化。编程步骤如下: (1)启动Delphi进入其主界面,对象监视器的当前组件是Form1窗体。单击对象监视器的事件选项卡,单击选定OnCreate事件,再双击OnCreate事件右边的空白处。进入应用程序的单元文件,Delphi为用户自动创建了一个过程,该过程即是窗体OnCreate事件的事件处理程序(简称事件代码)。,(2)用户在事件处理程序中输入代码。 (3)参
34、照第一步中的操作,在对象监视器的事件选项卡中,选定OnClick事件,双击OnClick事件右边的空白处,进入OnClick事件的事件处理程序。用户输入代码。 (4)操作同上,在OnDblClick事件的事件处理程序中用户输入代码 。 (5)单击工具栏上的“Save All”按钮,将应用程序的所有文件保存到文件夹:“D:爱好者窗体事件”。 (6)单击工具栏上的“Run”按钮,运行应用程序 。,3.2 常用三组件 3.2.1 Label组件 Label组件也叫标签组件,位于组件板“Standard”选项卡的第五个位置。Label组件在应用程序界面起说明或提示信息的作用。Label组件的主要属性有
35、: Name Label组件的名称,字符串类型。 Caption 设置Label组件的标题,字符串类型。 A1ignment 设置Label组件显示标题的水平对齐方式 。, Layout 设置Label组件显示标题的垂直对齐方式,取值可为:tlTop(顶对齐)、tlCenter(垂直居中)、tlBottom(底对齐)。 AutoSize 逻辑类型,值为True时,Label组件的大小随Caption属性值的大小变化。默认值为True。 WordWarp 逻辑类型,值为True时,Caption属性值在Label组件中分行显示。默认值为False。 Transparent 逻辑类型,值为True
36、时,背景是透明的。默认值为False。,3.2.2 Edit组件 Edit组件也叫单行编辑组件,位于组件板“Standard”选项卡的第六个位置。Edit组件可以接收用户输入的一行字符串或动态修改字符串。 Edit组件的主要属性有: Name Edit组件的名称,字符串类型。 Text 保存用户输入的字符串,字符串类型。 Enabled 逻辑类型,值为True时,Edit组件为有效状态,否则为无效状态。默认值为True。, ReadOnly 逻辑类型,值为True时,Edit组件中Text属性的值只能读出不能修改。默认值为False。 AutoSelect 逻辑类型,值为True且当Edit组
37、件获得焦点时,Edit组件中Text属性的所有字符串被自动选中。默认值为True。 PasswordChar 设置输入保密字符串时的显示字符。若设置为“*”,则所有输入字符显示为“*”。默认值为“#0”,无保密功能。 CharCase 设置字符的大小写形式 。,Edit组件的主要事件: OnChange事件,当Edit组件中的Text属性值发生变化时,将触发OnChange事件。 焦点是程序运行时组件的一种当前状态,表明该组件可以接收数据或进行某种操作。有些组件有焦点,而有些组件却没有焦点。比如,Edit组件就有焦点,当它获得焦点时,表示Edit组件当前可以接收用户输入的字符串。Label组件
38、却没有焦点。当窗体中有多个可获得焦点的组件时,当前时刻只能有一个组件获得焦点。一般情况下,当程序运行时先创建的组件先获得焦点。在应用程序的运行界面,用户按“Tab”键,可以看到组件焦点的转移。,3.2.3 Button组件 Button组件是最常用的按钮组件,位于组件板“Standard”选项卡的第八个位置。Button组件常用于程序运行界面接受用户的单击动作,从而执行相应的单击事件处理程序。Button按钮的主要属性有: Name Button按钮的名称,字符串类型。 Caption Button按钮的标题,字符串类型。 Enabled 逻辑类型,值为True时,Button按钮为有效状态。
39、默认值为True。, Visible 逻辑类型,值为True时,Button按钮为可见状态。默认值为True。 Anchor 设置Button按钮与其容器组件在上、下、左、右四条边上的相对位置关系,集合类型。 例如:Button1. Anchor:=akLeft,akTop; 表示Button1按钮与其容器组件在左边和顶边的位置固定不变。 Button组件的主要事件有: OnClick单击事件和OnDblClick双击事件。,3.2.4 应用实例 【例3-2】用三个Edit组件分别存放两个整型操作数和一个运算结果。用四个Button按钮分别实现加、减、乘、除四则运算。用四个Label组件给出相
40、应的说明信息。,3.3 按钮类型组件 3.3.1 BitBtn组件 BitBtn组件也叫位图按钮,位于组件板“Additional”选项卡的第二个位置。位图按钮的主要属性有: Caption 位图按钮的标题,字符串类型。 Enabled 逻辑类型,值为True时,BitBtn组件为有效状态。默认值为True。 Kind 设置位图按钮的类型,Delphi提供了bkCustom、bkYes、bkNo、bkAbort、bkAll、bkCancel等十余种取值。默认值为bkCustom。 Glyph 设置位图按钮上显示的位图,即bmp图片文件。,3.3.2 RadioButton与RadioGroup
41、组件 1. RadioButton组件 RadioButton组件也叫单选按钮,位于组件板“Standard”选项卡的第十个位置。单选按钮一般成组出现,互斥使用,即一组单选按钮中每次只能选中其中的一个单选按钮,不可能同时选中两个或两个以上。 单选按钮的主要属性有: Caption 单选按钮的标题,字符串类型。 Checked 逻辑类型,值为True时,单选按钮被选中,值为False时,单选按钮未被选中。,2. RadioGroup组件 RadioGroup组件也叫单选按钮组,位于组件板“Standard”选项卡的倒数第三个位置。主要属性有: Caption 单选按钮组的标题,字符串类型。 It
42、ems 单选按钮列表,用于设置每个单选按钮的标题。 Columns 设置单选按钮组中单选按钮的排列列数,默认值为1。 Itemlndex 单选按钮组中当前被选中的单选按钮的索引号。,3. 单选按钮组与分组框中单选按钮的区别 分组框是一个容器组件,位于组件板“Standard”选项卡的倒数第四个位置。分组框中的单选按钮是将每个RadioButton按钮直接拖放到分组框中而形成。而单选按钮组中的单选按钮是通过其Items 属性设置得到。 单选按钮组中的哪一个单选按钮被选中,是根据单选按钮组的Itemlndex属性来判断。分组框中的哪一个单选按钮被选中只能根据单选按钮的Checked属性来判断,它们
43、没有Itemlndex属性。,3.3.3 CheckBox组件 CheckBox组件也叫复选框,位于组件板“Standard”选项卡的第九个位置。多个复选框可以进行重复选择,彼此之间没有影响。复选框的主要属性有: Caption 复选框的标题,字符串类型。 Checked 逻辑类型,值为True时,复选框被选中,值为False时,复选框未被选中。默认值为False。,3.3.4 应用实例 【例3-3】利用单选按钮组和复选框设置Edit组件中文本的颜色和字体样式。设置两个BitBtn按钮,分别用于确认和退出系统。,3.4 单行编辑组件 3.4.1 MaskEdit组件 MaskEdit组件也叫掩
44、码编辑框,位于组件板“Additional”选项卡的第四个位置。利用掩码编辑框可以设计出多种形式的数据输入格式。MaskEdit组件的主要属性有: EditMask 用于设置掩码字符串。 Text 字符串类型,掩码字符串第二部分为0时,Text属性仅保存用户输入的字符。 EditText 字符串类型,保存掩码编辑框中的全部字符,不受掩码字符串第二部分的影响。,3.4.2 SpinEdit组件 SpinEdit组件也叫数字编辑框,位于组件板“Samples”选项卡的第五个位置。SpinEdit组件的主要属性有: Value 保存用户输入的整型数据。 MaxValue 整型,设置Value属性的最
45、大取值。默认值为0,表示取值不受限制。 MinValue 整型,设置Value属性的最小取值。默认值为0。 Increment 整型,设置SpinEdit组件上微调按钮的增加或减少的步长。,3.4.3 应用实例 【例3-4】利用MaskEdit组件输入年份和月份,判断当前年份是否为闰年并计算当前月份的天数。能被400整除,或者不能被100整除但能被4整除的年份是闰年,其他年份为平年。闰年2月为29天,平年2月为28天。,【例3-5】利用SpinEdit组件输入一个整数,然后计算该整数的阶乘,并用一个Edit组件显示计算结果。,3.5 多行编辑组件 3.5.1 Memo组件 Memo组件是多行编
46、辑组件,位于组件板“Standard”选 项卡的第七个位置。Memo组件的主要属性: Lines Lines属性是一个TStrings对象,拥有自己的属性和 方法。 Text 用于存放Memo组件中的所有字符串,包括每行之间 的回车和换行字符。 Align 设置Memo组件在其容器组件中的位置。, Alignment 设置Memo组件中字符串的对齐方式,有左中右三种方 式。 ScrollBars 设置Memo组件的滚动条样式。 SelText 运行时属性,保存Memo组件中当前被选中的字符串。 SelLength 运行时属性,保存或设置Memo组件中当前被选中字符 串的长度。 SelStart
47、 运行时属性,保存或设置Memo组件中当前被选中字符 串的起始位置。,2. Memo组件的常用方法 Memo组件的几个常用方法: CutToClipboard 将Memo组件中被选中的字符串剪切到剪贴板。 CopyToClipboard 将Memo组件中被选中的字符串复制到剪贴板。 PasteFromClipboard 将剪贴板的内容粘贴到Memo组件中光标所在 的位置。 Clear 清除Memo组件中的所有字符串。,3. Memo组件Lines对象的属性和方法 以Memo1组件为例,说明Lines对象主要方法和属性的 使用。 Memo1. Lines.Add( abc ); 在Memo组件的
48、最后增加一行字符串abc。 Memo1. Lines.Insert( 0,abc ); 在Memo组件的第一行增加一行字符串abc,原第一 行和其后面的行向后移动一行。 Memo1. Lines.Delete( 1 ); 删除Memo组件中的第二行。 n:=Memo1.Lines.Count; 将Memo组件中的行数赋给整型变量n。 Memo1.Lines.LoadFromFile(d:textf1.txt); 将指定的文本文件装入Memo1组件中。,3.5.2 RichEdit组件 RichEdit组件位于组件板“Win32”选项卡的第五个位 置,RichEdit组件具有Memo组件的所有属
49、性和方法,它 还具有下面几个常用的属性和方法。 DefAttributes 用于设置RichEdit组件中字符串的默认字体,如字 体、大小、颜色和显示风格等。 SelAttributes 用于设置RichEdit组件中当前所选字符串的字体、大 小、颜色和显示风格等。 FindText方法 在RichEdit组件中,从指定的起始位置开始、按指定 的查找长度查找指定的字符串。,3.5.3 应用实例 【例3-6】在Memo组件中利用其Lines属性的方 法实现行的插入、删除、移动和交换,并用一个 Edit组件动态显示Memo组件中的行数。,【例3-7】在RichEdit组件中利用其常用方 法,实现剪
50、切、复制、粘贴等操作,并实 现字符串的查找功能。,3.6 列表框与组合框 3.6.1 ListBox组件 ListBox组件也叫列表框,位于组件板“Standard”选项卡的第十一个位置。 1. ListBox组件的主要属性 Items Items属性是一个TStrings类型的对象,用 于设置列表框中的所有项目列表。 Itemlndex 用于确定被选中项在列表框中的位置,从0开始 计数。若列表框中没有项目被选中,则该属性值 为-1。, MultiSelect 逻辑类型属性,当其值为True时,表示用户可以从列 表框中选中多个项目; ExtendedSelect 逻辑类型属性,Extended
51、Select属性与MultiSelect属 性配合使用。 SelCount 用于返回当前列表框中被选中的项目个数。SelCount 属性仅使用在MultiSelect属性值为True的情况。 Selected Selected属性是一个逻辑类型的数组,列表框中的每 一项对应了该数组中的一个元素,若列表框中的i项被选 中,则Selectedi为True,否则Selectedi为False。,2. ListBox组件的方法 Clear 清除ListBox组件中的所有项目。 3. ListBox组件的主要事件 OnClick事件 用户单击ListBox组件时触发该事件。 OnKeyPress事件 用
52、户按下某个键时触发该事件。,3.6.2 CheckListBox组件 CheckListBox组件又叫复选列表框,位于组件板 “Additional”选项卡的第十一个位置。 CheckListBox组件除了具有ListBox组件的属性、方 法和事件,还具有自己的一些属性和事件。 Checked属性 Checked属性是一个逻辑类型的数组,复选列表框中 的每一项对应了该数组中的一个元素,若复选列表框中i 项前的复选框被选中,则Checked i为True,否则 Checked i为False。 OnClickCheck事件 用户单击选项前的复选框时触发该事件。,3.6.3 ComboBox组件
53、1. ComboBox组件的主要属性 Items Items属性与ListBox1组件中的Items属性类似, 由多个选项组成。 Text 保存用户输入的字符串或从下拉列表框中选中的 某一项,字符串类型。 SelText 保存用户在编辑框中选中的字符串,字符串类型。 Style 设置ComboBox组件的风格,一般用默认设置。,2. ComboBox组件的方法 ComboBox组件与ListBox组件的主要方 法相同,但个别有些差异。 例如:ComboBox1.Clear; 表示清除ComboBox1中编辑框和下拉列 表框中的所有内容。 ComboBox1. Items .Clear; 表示清
54、除ComboBox1中下拉列表框中的 内容。,3.6.4 应用实例 【例3-8】利用ListBox组件、CheckListBox组件、 ComboBox组件和Radiogroup组件,在RichEdit组件中设 置当前所选字符串的字体、字形、字号和颜色。,3.7 滑块组件 3.7.1 ScrollBar组件 1. ScrollBar组件的主要属性 Kind 设置滚动条为水平方式或垂直方式。 Min 设置滚动条中滑块位置的最小取值,整型。默认值为0。 Max 设置滚动条中滑块位置的最大取值,整型。默认值为100。 Position 设置或保存滚动条中滑块当前位置的取值,整型。默认 值为0。, S
55、mallChange 设置滚动条中滑块的最小移动单位,默认值 为1。单击滚动条左边的三角形按钮,滑块左移 一个最小单位;单击滚动条右边的三角形按钮, 滑块右移一个最小单位。按键盘上的“”键或“” 键也可使滑块左移或右移一个最小单位。 LargeChange 设置滚动条中滑块的最大移动单位,默认值为 1。单击滑块左边的空白处,可每次左移一个最 大单位;单击滑块右边的空白处,可每次右移一 个最大单位。,3.7.2 TrackBar组件 TrackBar组件又叫刻度尺,位于组件板“Win32”选项 卡的第六个位置。其主要属性介绍如下: Orientation 用于设置TrackBar组件的水平方式或
56、垂直方式。 Min 设置刻度尺中滑块位置的最小取值,整型。默认值为0。 Max 设置刻度尺中滑块位置的最大取值,整型。默认值为10。 Position 设置或保存刻度尺中滑块当前位置的取值,整型。默认 值为0。, LineSize 设置刻度尺上滑块左移或右移(当用户按键 盘上的“”键或“”键时)的单位,默认值为1。 PageSize 设置刻度尺上滑块左移或右移(当用户按键盘 上的“PageUp”键或“PageDown”键时)的单位, 默认值为2。 Frequency 用于设置刻度尺上刻度的间距,默认值为1。 TickMarks 设置刻度出现在刻度尺上的相对位置,有上 端、下端、上下端三种取值,
57、默认值为下端。,3.7.3 应用实例 【例3-9】利用三个ScrollBar组件分别调整红、 绿、蓝三基色,然后用三基色的合成色设置汉字 的颜色。用一个TrackBar组件来控制三个 ScrollBar组件的最大移动单位。,3.8 定时器与其他组件 3.8.1 Panel组件 Panel组件也叫面板,位于组件板“Standard” 选项卡的倒数第二个位置。Panel组件的主要属 性介绍如下: Caption 用于设置Panel组件上显示的标题。 Align 用于设置Panel组件在其容器组件上的相对位 置,可设置左端、右端、顶部、底部、剩余空间 等方式,默认值方式为alNone,表示没有限定。, Alignment 用于设置Panel组件中标题的对齐方式。有左、 居中、右三种方式,默认方式为居中。 Enabled 用于设置Panel组件及其所包含组件是否有效。 其值为True时,Pan
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年区块链安全审计物流行业应用
- 烟花爆竹经营单位安全管理人员考试题及答案
- 计算机控制技术教学课件(共9章)ch08控制技术中的计算机系统11
- 《金融科技概论》-教学教案
- 小学语文教师选调进城考试试题(附答案)
- 小学信息技术教师业务考试试题及答案(参考)
- 充电桩生产建设项目可行性研究报告
- 西方经济学简明原理期末考试题库及答案-生产与成本
- 物业工程维修部试题及答案
- 2026年投融资专员招录综合试题题库
- GB/T 25085.6-2026道路车辆汽车电缆第6部分:交流600 V或直流900 V和交流1 000 V或直流1 500 V单芯铝导体电缆的尺寸和要求
- 2025年(第三届)电力行业智能巡检技术大会:变电室内简易机器人技术探索与实践
- 2025年数控车工职业技能鉴定考试(高级技师一级)历年题库及答案
- 2025年医保知识考试题库及答案:医保信息化建设应用试题及答案
- CFG桩复合地基承载力及变形计算表
- 合同审核检查表风险点提醒及审查流程模板
- 2025北京市交通发展年度报告
- 信用卡部培训大纲
- 代建公司代建管理制度
- 滚针美容治疗技术解析
- 2025黑龙江七台河辰能生物质发电有限公司招聘笔试参考题库附带答案详解
评论
0/150
提交评论