第一部分 Delphi基础.doc_第1页
第一部分 Delphi基础.doc_第2页
第一部分 Delphi基础.doc_第3页
第一部分 Delphi基础.doc_第4页
第一部分 Delphi基础.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

第一部分 Delphi基础 Delphi被称为是第四代编程语言,它采用基于窗体和面向对象的方法,具有高速的编译器,功能强大的数据库支持,与Windows编程紧密结合,成熟的组件技术等特点。 Delphi是全新的可视化编程环境,为用户提供了一种方便、快捷的Windows应用程序开发工具;除此之外,还允许用户挂接其它的应用程序开发工具。 Delphi适应于多种数据库结构,从客户机/服务器模式到多层数据结构模式,而且具有高效率的数据库管理系统和新一代更先进的数据库引擎,同时采用最新的数据分析手段和提供大量的企业组件。1.2 Delphi 7的功能特点 1.2.1 Delphi 的主要特点 1可视化开发环境 2丰富的可视化组件VCL 3面向对象特性 4高效的编译器 5强大的数据库开发功能 6良好的分布式应用开发支持1.2 Delphi 7的功能特点 1.2.2 Delphi 7的新特性 1集成开发环境方面 2Web技术(仅限于专业版和企业版)方面 3数据库技术方面 4COM方面 5对开发Linux平台应用程序支持方面1.3 Delphi的集成开发环境 Delphi 7系统安装完成后,单击“开始程序Borland Delphi 7Delphi 7”即可启动Delphi 7。 Borland Delphi 7程序组包含以下部分:即Help、BDE Administrator、Database Desktop、Datapump、Delphi 7、Image Editor、Register Now、SQL Explorer、SQL Monitor、WinSight 32和XML Mapper。 Delphi 7系统的集成开发环境由7个部分构成,如图1-12所示。这7个部分是:主菜单、快捷工具栏、组件面板、窗体设计器、代码编辑器、对象树状查看器(Object TreeView)和对象查看器(Object Inspector)。它们分布在Delphi 7主菜单、窗体设计器、代码编辑和浏览窗口、对象树状查看窗口和对象查看窗口等窗口中。1.3 Delphi的集成开发环境1.3 Delphi的集成开发环境 1.3.1 Delphi 7主窗口 Delphi 7主窗口位于集成开发环境的顶端,如图1-2所示。1.3 Delphi的集成开发环境 1主菜单 主菜单及其下拉菜单提供了Delphi 7集成开发环境的所有功能。Delphi 7主菜单除包括通常Windows应用程序都具有的File、Edit、View、Window及Help等菜单项外,还有与Delphi 7工程、运行及配置等相关的菜单项。 2.快捷工具栏(Speed ToolBar) 快捷工具栏位于Delphi 7主窗口的左下方它提供了与主菜单的常用菜单项相对应的命令按钮,可以在不打开主菜单的情况下快速执行这些功能。1.3 Delphi的集成开发环境 3.组件面板 Delphi 7主窗口的另一部分是组件面板,位于主窗口的右下方(如图1-3)。组件按功能、基类或特性进行了分类,用一个具有多页面的组件面板进行管理,为用户使用组件进行应用设计带来了很大的方便。组件面板的布局如图1-3所示。1.3 Delphi的集成开发环境 1.3.2 窗体设计器 用户界面是应用系统与用户直接交互的界面。设计用户界面是设计应用程序的重要部分。Delphi的用户界面由窗体构成,窗体的设计是在窗体设计器中完成的。Delphi 7提供了一个功能强大的、所见即所得的窗体设计器。 用户只要从组件面板中选择需要的组件添加到窗体,就可获得所需的应用程序界面。在窗体设计器中还可对窗体中所包含的组件进行删除或编辑操作。在Delphi 7中创建一个新的应用程序时,系统将自动在当前工程中添加1个新窗体,默认名为Form1。1.3 Delphi的集成开发环境 1.3.3 对象树状查看器 对象树状查看器以树状结构显示当前工程所包含的所有对象,就像在Windows系统的文件管理器中显示各文件夹及文件的树状结构一样,如图1-4所示。1.3 Delphi的集成开发环境 1.3.4 对象查看器 对象查看器的主要功能是对对象进行设计和管理,它是联系界面各组件和程序编码的媒介。对象查看器由对象列表框、属性选项卡和事件选项卡三个部分组成,如图1-5所示。对象查看器有两项主要功能: (1) 设置或修改窗体以及包含于窗体的对象属性。 (2) 设置对象响应的事件处理程序。 1.3 Delphi的集成开发环境 1.3.5 代码编辑和浏览窗口 代码编辑和浏览窗口包括两部分,其外观如图1-6所示。左边是代码树状浏览器,右边是代码编辑器,标题栏显示的是正处于当前单元文件的名称。代码编辑器是进行源程序的编辑窗口。可以同时对多个单元文件进行编辑,此时各单元文件以多个标签页的形式出现,选择相应的标签页即可对该单元文件进行编辑,底部的状态栏有当前行列、改写/插入等编辑状态提示。代码浏览器以树状图方式显示单元文件的信息。第二部分 面向对象的Pascal Delphi的编程语言即Object Pascal是在Pascal的基础上发展起来的,它继承了Pascal语言语法结构严谨和编译代码高效优化等优点。本章将介绍Object Pascal的数据类型、常量、变量、运算符、语句、函数和过程等。2.1 数据类型 2.1.1 简单数据类型 简单类型包括有序类型和实型两种。 1有序类型 有序类型包括整型、字符型、布尔型、枚举型和子界型。 有序类型是一种线性的数据结构,每个值都有唯一的前驱(除第一个)和唯一的后继(除最后一个)。 (1) 整型 整型的表示范围及存储格式见表2-1。2.1 数据类型2.1 数据类型 (2) 字符型 字符型的类型标识符是Char。字符型的数据只能是单个字符,不能是一串字符。例如ABC,x=? 等都不是字符型的数据,而是字符串。(3) 布尔型 通常用到的布尔类型是Boolean,一个Boolean类型的变量占一个字节,它只有两种取值:true和false。定义变量i,ch,t分别为整型、字符型、布尔型。 var i: Interge; ch: Char; t: Boolean;2.1 数据类型 (4) 枚举类型 枚举类型是用一些标识符来表示一系列有序数,即由一些标识符组成的一个线性表。定义枚举类型的语法是: type typeName=(val1,.,valn) (5) 子界类型 子界类型指的是某个有序类型(称为基类)的一个子集。定义子界类型的语法是: type typeName=Low.High;2.1 数据类型 2实型 表2-2给出了实型的表示范围和存储格式。2.1 数据类型 2.1.2 字符串类型 字符串类型是用一对单引号括起来的一系列字符。字符串类型的表示范围和存储格式见表 2-3。 2.1 数据类型 2.1.3 结构类型 结构数据类型是一种复合数据类型,由多个数据组成。结构类型包括集合类型、数组类型、记录类型、文件类型等。 1集合类型 集合类型是一组相同类型元素的组合。定义集合类型: type Name=set of BaseType 2数组 数组是一些具有相同类型元素的有序组合。 (1) 静态数组 静态数组的声明格式为: type Name=arrayindexType1,.,indexTypen of BaseType;2.1 数据类型 (2) 动态数组 动态数组没有固定的大小或长度。当赋值或使用某些函数(如SetLength)时,动态数组在内存中重新分配。 动态数组的声明格式为: type Name=array of BaseType; 定义动态数组不需声明元素的个数。例如: type Dynamicarray=array of Real; var a1,a2:Dynamicarry; a1:=a2; /a1和a2指向相同的内存单元。2.1 数据类型 3记录类型 记录类型(有的语言中被称为结构)是一个不同种类元素的集合,每个元素称为字段(field)。在声明时,指定记录的名字和每个字段。声明格式为: type RecordTypeName=record FieldList 1:type1; FieldList 2:type2; FieldList n:type n; end;2.1 数据类型 4文件类型 文件类型是由相同类型的元素组成的有序集合。文件类型的声明格式为: type fileTypeName = file of type 例:声明一个文件类型RecordList,以上面已定义的TdateRec为数据类型。 type RecordList = file of TdateRec; var Myrecordlist:RecordList;2.1 数据类型 2.1.4 可变类型 有时要对一些数据类型变化的数据进行操作,并且在编译期间不能确定数据的类型,这时就可以使用可变类型的数据。 可变类型可以使用除记录、集合、静态数组、文件等结构类型、指针类型及长整型外的所有类型。可变类型有一个特殊的值Null,表示不明的或丢失的数据。 可变类型变量的声明格式为: var v1:Variant;2.2 常量与变量 2.2.1 标识符 标识符是描述Object Pascal程序各个部分的名称,这些部分包括标记、对象、过程、类型、单元、变量及程序。标识符的大小写无关(即它不区分大小写),并且遵循以下规则: 可为任意长度,但只有前255个字符有效。 标识符的第1个字符必须是字母或下划线。 跟在第1个字符后面的字符必须是字母、数字或下划线。 标识符中不允许出现空格。2.2 常量与变量 2.2.2 常量 常量是一个在程序的运行过程中具有不变值的标识符,常量的声明格式如下: Const 常量名=表达式; 变量不能在一个常量声明中使用,但算术和逻辑运算符可以,下面的函数可以在常量声明中使用。 Abs Low Round Chr Odd SizeOf Hi Ord Succ High Pred Swap Length Ptr Trunc Lo2.2 常量与变量 2.2.3 变量 变量是程序代码中代表一个内存地址的标识符,而此地址中的内容在程序执行过程中可以改变。在变量使用之前必须先声明,变量声明格式如下: var 变量名表:类型名; 例: var s:string; i:integer; flag:Boolean;2.3 表达式与运算符 2.3.1 表达式 表达式就是变量、常量、字符串、运算符及函数按照一定规则的组合。例: Peoples Republic Of +China Gross/12 Max(x,y)-Min(x,y) 2.3.2 运算符 1赋值运算符(:=) 赋值运算符“:=”是先计算赋值运算符右边表达式的值,再将结果赋给左边的变量。2.3 表达式与运算符 2算术运算符 表2-4 算术运算符2.3 表达式与运算符 3关系运算符 关系运算符是对两个类型相容且可以比较大小的数据进行比较,结果为布尔类型,见表2-5。 表2-5 关系运算符2.3 表达式与运算符 4逻辑运算符 逻辑运算符对逻辑类型的操作数进行运算,结果为布尔型,见表2-6。 表2-6 逻辑运算符2.3 表达式与运算符 5集合运算符 表2-7 集合运算符2.3 表达式与运算符 6运算符的优先级2.4 语句 2.4.1 注释 注释是添加在程序中用来说明代码功能的语句,它是非执行语句,对程序的执行部分不会产生任何影响,有助于提高程序的可读性。在Object Pascal中,有三种注释标记: 花括号“”注释:位于 “”中的内容为注释。 双斜杠“/”注释: “/”之后到本行结束的内容为注释。 圆括号及星号对“(*)”注释:(*)中的内容为注释。 例如以下语句都是注释: The first kind Of comment. /The secondkind Of comment. (*The third kind Of comment.*)2.4 语句 2.4.2 简单语句和复合语句 简单语句是Object Pascal中最简单也最常用的语句,简单语句用分号分隔。赋值语句、函数、过程调用语句等是简单语句,例如下面的语句都是简单语句: r:=m+n; /两个值相加并赋值 ShowMessage(Im a student.); 复合语句是多个简单语句的组合,复合语句以begin表示开始,以end表示结束。例如: begin i:=1; j:=i+1; s:=abc; end;2.4 语句 2.4.3 条件语句 条件语句是Object Pascal语言提供的选择结构语句,主要有如下两种: 1if语句 if语句的表示形式: if then else 2.4 语句 【例2-1】求两个数中的最大值。 if ab then max:=a /在变量a之后不能加“;” Else max:=b; 【例2-2】符号函数。 -1 (x0)2.4 语句 2case语句 case语句的表示形式: case of : : else end;2.4 语句 【例2-3】编写一个程序,输入一个年份,判断是否是闰年。闰年的条件是满足下面条件之一: (1) 能被4整除,但不能被100整除的年份; (2) 能被100整除,也能被400整除的年份。 对这两个条件都不符合的年份不是闰年。 程序功能:输入一个年份,显示其是否为闰年的信息。 界面设计:四个组件:两个文本框Label1和Lable2,分别显示提示和结果信息;一个Edit组件Edit1,用来输入要进行判断的年份;一个Button组件Button1,用来查询结果。如图2-1所示。2.4 语句2.4 语句 begin year:=StrtoInt(Edit1.text); /将字符串转变为整型 if year mod 4 = 0 then begin if year mod 100 =0 then begin if year mod 400=0 then flag:=true else flag:=false; end else 2.4 语句2.4 语句 2while语句 while语句的一般形式为: while do while后面的为逻辑表达式,先计算表达式的结果,如果表达式为true,while语句将重复执行循环体。如果表达式结果为false,则跳出循环,执行while之后的语句。2.4 语句 3repeat语句 repeat语句的一般形式为: repeat until 当使用repeat语句时,先执行循环体,再判断表达式,只要until后面的表达式为true,则将再执行循环体。因此,repeat语句下面的循环体至少执行一次。2.4 语句 4break语句 功能是强行退出循环,break语句只能用在循环体内。 【例2-7】利用break语句退出一个while循环。 var s: String; begin while true do /条件恒为真 begin ReadLn(s); /读入一字符串 if s= then break; /不输入任何字符,则退出循环 WriteLn(s); /输出字符串 end; end;2.4 语句 5continue语句 continue语句也用在循环体中,其作用是强行结束本次循环,转入循环开始处,开始执行下一次循环操作。 【例2-8】使用continue语句,求1100所有奇数之和。 var i,s: Integer; s=0; begin for i:=1 to 100 do begin if i mod 2=0 then continue; /如果为空,跳过剩余语句,转到下一个循环 s:=s+i; end; end;2.5 函数和过程 函数和过程是实现一定功能的语句块,是程序中的特定功能单元。可以在程序的其他地方被调用,也可以进行递归调用。函数和过程的区别在于函数有返回值,而过程没有返回值。 2.5.1 函数和过程的声明 函数和过程在使用前必须进行声明。 1函数的声明 函数的声明是在程序的type区,具体形式如下: function ():;2.5 函数和过程 函数的定义是在程序的implementation部分,具体形式如下: function ():; var begin := /也可以用Result系统保留字代替 end; 在begin与end之间是在函数调用时实现特定功能的一系列语句。函数值的返回有两种方式: 将返回值直接赋给函数名。 将返回值赋给Result。2.5 函数和过程 【例2-9】求两个数中的最大数。 function Max(a,b: integer):integer; /两个形参为整型值a、b,函数返回值为整型 var m: Integer; begin if ab then m:= a else m:= b; Max:= m; /或result := m; end;2.5 函数和过程 2过程的声明 过程的声明与函数类似,所不同的是使用的保留字不同,而且少了一个返回值类型; 过程的声明是在程序的type区,具体形式如下: procedure ():; 过程的定义是在程序的implementation部分,具体形式如下: procedure (); begin end;2.5 函数和过程 【例2-10】显示一行num个星号*。 procedure ShowStar(num:Integer); var i: Integer; s:String; begin s:= ; for i:=1 to num do s:= s+*; ShowMessage(s); end;2.5 函数和过程 2.5.2 重载函数和过程 所谓重载,是指在同一个作用范围内给不同的函数或过程取同一个名称。重载可以方便编程,重载函数必须用指令字overload来进行说明。 下面的两个函数就是重载函数: function Max(a:Integer;b:Integer):Integer;overload; /求两个整数的最大值 function Max(a:Real;b:Real):Real;overload; /求两个实数的最大值 下面两条语句就调用了不同的函数: Max(3.7,4.6); /调用的是第二个重载函数 Max(3,4); /调用的是第一个重载函数2.5 函数和过程 2.5.3 参数 1形参与实参 函数或过程的声明和定义时参数列表中的参数称为形式参数,简称形参;而函数或过程调用时参数列表中的参数称为实在参数,简称实参。 2数值参数、变量参数和常量参数 (1) 数值参数 在调用函数或过程时,数值参数在运行过程中只改变其形参的值,不改变其实参的值,即形参不会影响原来实参的值。 (2) 变量参数 如果用户想改变传递的参数值,就需要使用变量参数,即在被调用程序的参数表中的形参前加上保留字var。2.5 函数和过程 (3) 常量参数 如果当过程或函数执行时要求不改变形参的值,最保险的办法是使用常量参数。在参数表的参数名称前加上保留字const可以使一个形参成为常量参数。使用常量参数代替数值参数可以保护用户的参数,使用户在不想改变参数值时不会意外地将新的值赋给这个参数。 2.5.4 作用域 在Object Pascal中,根据变量的作用域,可将变量分为:全局变量和局部变量。所谓变量的作用域,是指变量的有效范围。全局变量在整个程序中都有效,其作用域为整个程序;局部变量只在声明它的函数和过程中有效,其作用域只限于该函数或过程本身。 2.5 函数和过程 例: type var Form1: TForm1; /全局变量Form1 implementation $R *.dfm procedure TForm1.FormCreate(Sender: TObject); var m,n:Integer; /局部变量m,n Form1:Tform1; (*局部变量Form1,与上面的全局变量同名,在过程TForm1.FormCreate中局部变量起作用。*)2.5 函数和过程 2.5.5 函数和过程的调用 1函数和过程的调用 (1) 函数的调用 函数调用的一般形式为: () 函数的调用往往是将返回值赋给某个变量或参与运算。例如调用例2-9,将其返回值赋给变量x的语句为: x:=Max(3,6); (2) 过程的调用 过程的调用的一般形式为: (); 其中的实参可以是常量、变量或表达式,但实参的个数和类型与形参完全匹配,即个数相同、类型一致。例如:调用例2-10的过程ShowStar的语句为: ShowStar(20);2.5 函数和过程 2函数和过程的递归调用 所谓递归调用,是指函数A调用函数B,而函数B又调用函数A的情况,或是指一个函数调用自身的特殊情况。 【例2-11】递归调用 program Project1; ($SappTypeConsole) var alpha:Integer; procedure Test2(var A:Integer):forword; (*Test2被说明为前置过程*) procedure Testl(Var A:Integer); begin a:=a-1; if a0 then第三部分 常用组件 在使用Delphi开发应用程序中,广泛地使用到组件。可视组件库(Visual Component Library,简称VCL)是Delphi中最重要的部分,通过VCL可以在窗体中方便地构建与用户交互的界面,其中大部分组件显示在组件面板(Components Palette)上。除了少数例外,所有的组件都是TComponent类的子类。另外,用户还可以创建自己定义的特殊功能组件。本章主要介绍Delphi 7中常用组件的基本功能及主要属性、方法等内容。 3.1 组件概述 3.1.1 组件分类 1可视化组件(Visual Component) 可视化组件在程序运行期间用户是可以看到的,也称为控件(Contro1)。控件又有两种不同的类型,即基于窗口的和基于图形的。基于窗口的控件(即窗口控件)是指基于系统窗口的可视组件,具有窗口句柄,可以作为输人焦点并可以含有其他控件,如Edit组件。图形控件没有窗口句柄,不能作为输入焦点,也不能含有其他控件,如Label组件。 2非可视化组件(Nonvisual Component) 非可视化组件是指在程序运行期间用户是不可以看到的,是从TComponent但不是从TControl派生出来的子类。3.1 组件概述 3.1.2 组件的常用属性及事件 在Delphi中,每一个组件都具有特定的属性、事件和方法。组件的属性是组件特性的描述,包括组件的外观特性(如位置、尺寸、外形、字体、可视性)和非可视化的特性,组件常见的基本属性见表4-1。组件的事件是对组件所做的某个动作或系统的某些行为(如按下鼠标、双击鼠标、窗体装入等)的反应。每个组件都提供满足用户的各类事件处理器,当发生特殊事件时,应用程序将执行事件处理器中的代码。组件的常用事件及触发条件见表4-2。组件的方法是指该类或对象类型实例的函数或过程,每一类组件都有自己的方法,以实现各种功能。3.1 组件概述3.1 组件概述3.2 文本输入类组件 3.2.1 TLabel组件 TLabel标签组件位于组件面板的Standard选项卡上(如图3-1),可以显示一个只读的字符串。通常利用TLabel标签组件在窗体上显示静态文本,如显示提示信息;也可显示动态文本,如用TLabel显示不断变化的当前时间。 1用途 TLabel组件主要用来标识应用程序中的其他对象,最常见的用法是把标签放在其他组件的旁边,如放在文本框、Memo框及单选按钮等组件的左侧或上方。标签上的文字信息有助于用户操作,也可为用户提供信息。3.2 文本输入类组件 2主要属性和方法 TLabel组件常用的属性见表3-1。下面介绍TLabel组件的主要属性和方法。 (1) A1ign属性:该属性决定TLabel组件的显示位置(使其位于窗口的某个部分)。 (2) Alignment属性:该属性设置文字在水平方向的对齐方式。 (3) AutoSize属性:该属性决定标签的大小是否和文字保持一致,其默认值为false,即标签的大小不随文字的大小而变化。 (4) Layout属性:该属性设置文字在垂直方向的对齐方式。 (5) TransParent属性:该属性决定标签是否透明显示,主要在图形操作时使用,如果将其设置为true,则可透过标签看到背景图。 (6) WordWrap属性:该属性决定当Autosize属性为true时,文字超长时的显示方式。该属性为true时,则文字在纵向方向扩展,以多行显示;为false时,则文字在横向方向扩展,以完全容纳文本内容。3.2 文本输入类组件 3.2.2 TEdit组件 TEdit文本框组件位于组件面板的Standard选项卡上(如图3-1),可以显示、编辑单独的一行文本。 1用途 TEdit组件提供了一个编辑区域,用户可在区域中输入单行信息。TEdit不但允许用户在文本框中输入数据,也可以用来显示查询的数据及提示信息。 2主要属性和方法 (1) AutoSelect属性:该属性用来设置当TEdit组件获得输入焦点时,自动选中所有的文本。若它的值为true,则当Edit组件获得输入焦点时,自动选中所有的文本;若它的值为false,则当Edit组件获得输入焦点时,不自动选中所有的文本。3.2 文本输入类组件 (2) AutoSize属性:用于控制是否随字体的高度来改变编辑框的高度。当AutoSize设置为true时,编辑框的高度会自动适应输入文字的字体高度。但要注意,该属性只有当BorderStyle属性设置为bsSingle时才有效。 (3) CharCase属性:该属性用于强制组件中的文本全部为大写(或小写)字母。 (4) Enabled属性:该属性决定文本框中的内容是否可以修改,其默认值为true,即文本框中的文本可以修改;当它的值为false时其中的文本不能修改。 (5) Hint属性:该属性用来设置所显示的提示信息。例如通过将该属性设置为“请输入职工姓名”,并将ShowHint属性设置为true,则在应用程序运行时当用户将鼠标移到文本框并停顿片刻后,将显示引号中的提示信息。3.2 文本输入类组件 (6) IME属性:IME是输入法编辑器(Input Method Editor)的英文缩写,通过设置该属性可以在输入焦点定位在Edit组件上时,自动实现输入法的切换。 设置ImeMode属性:如果要设置为中文输入法,可以将ImeMode属性设置为imChinese. 设置ImeName属性:可以通过下拉组合框选择一个具体的输入法。 (7) PasswordChar属性:将用户输入的所有字符以同一个字符显示,其默认值是“#0”,表示编辑框直接显示用户输入的字符;如果将其设置为“*”,则不论用户输入什么,编辑框中都只显示“*”号,一般在键入密码时可以这样设置。 (8) Clear方法:该方法删除文本框中的所有文本。 (9) ClearSelect方法:该方法删除文本框中被选择的文本。如果文本框中没有被选择的文本,则不删除任何内容。3.2 文本输入类组件 (10) CopyToClipboard方法:该方法将文本框中已选择的文本拷贝到剪贴板上,并取代原来剪贴板中的所有内容。如果用户未在文本框中选择任何文本,该方法的执行将不删除原来剪贴板的所有内容。 (11) CutToClipboard方法:该方法将文本框中已选择的文本拷贝到剪贴板上,并取代原来剪贴板中的所有内容,然后删除在文本框中被选中的内容。 (12) PasteFromClipboard方法:该方法将剪贴板上的内容拷贝到文本框中,并插入到文本框中光标所在的当前位置。 (13) SelectAll方法:该方法选择文本框中的所有文本。 Edit组件最常用的事件(也是默认事件)为OnChange,一旦Edit组件中的文本内容发生了改变,就会触发OnChange事件。3.2 文本输入类组件 【例3-1】设计用户登录验证的窗体,用来接收用户输入的用户名和口令,单击“确定”按钮进行验证,根据输入是否正确显示相应的提示信息。 (1) 创建“人事管理”文件夹,用来保存该应用程序代码。 (2) 创建一个工程RsglPrj.dpr,登录窗体设计界面如图4-2所示,包含六个组件,即两个Label组件用于显示提示信息;两个TEdit组件(UseName用于输入用户名,PassWord用于输入用户口令);二个TButton组件。 (3) 组件的属性设置。登录窗体所包含的各组件的主要属性设置见书表3-7。 (4) 编写DengLu窗体相应的程序代码。3.2 文本输入类组件3.2 文本输入类组件 3.2.3 TMemo组件 TMemo备注框组件位于组件面板的Standard选项卡上(如图3-1),可以显示、编辑多行文本。 1用途 TMemo组件为用户提供了一种处理多行文本的方法,还可用来快速阅读文件中的数据。尽管TLabel、TEdit和TMemo组件有许多相似之处,但它们的使用场合却有所不同。如果只显示用户不能修改的信息,可采用标签;如果用户只处理单行信息,则使用TEdit组件;如果用户要处理多行文本,那么只能采用TMemo组件。 3.2 文本输入类组件 2主要属性 TMemo组件的很多属性(如MaxLength、ReadOnly和Text等)和TEdit组件的属性类似,相同属性的含义不再赘述。以下是TMemo组件的特殊属性。 (1) Lines属性:返回TMemo组件中文本的行数。 (2) ScrollBars属性:该属性用来设置TMemo组件是否有滚动条。 (3) WantTabs属性:该属性用来设置是否可以使用Tab键来进行文本编辑。其值设置为true,这时可以用Tab键来使TMemo组件获得输入焦点,但不能用Tab键从TMemo组件切换到其他组件,默认值为false。3.2 文本输入类组件 3.2.4 TRichEdit组件 TRichEdit组件和TMemo组件几乎完全相同,但是在TRichEdit组件中的文字可以有多种字体、多种颜色。TRichEdit组件位于组件面板的Win32选项卡上,如图3-3所示。3.3 按钮类组件 Delphi 7为用户提供了三种按钮组件,也是平时在Windows应用程序时经常用到的按钮:普通按钮(TButton)、位图按钮(TBitBtn)和快捷按钮(TSpeedButton)。下面介绍与这些按钮有关的组件。 3.3.1 TButton组件 TButton命令按钮组件位于组件面板的Standard选项卡上,如图3-1所示。 1用途 TButton组件是为用户提供用来选择执行命令的组件,通常称为命令按钮。按钮在Windows程序中应用非常广泛,它可以放在应用程序的任何地方,触发之后执行特定的操作。3.3 按钮类组件 2主要属性 (1) Cancel属性:该属性决定按钮是否为Cancel按钮。当设置为true时,为Cancel按钮,即当用户按Esc键时,将执行按钮的OnClick事件处理程序。当窗体中有多个Cancel按钮时,则只调用Tab Order属性最小按钮的OnClick事件。 (2) Caption属性:该属性用来让用户识别组件,输入属性值显示在组件表面。 (3) Default属性:该属性决定按钮是否为默认按钮。如果将其设置为true,则按钮为默认按钮,此时当用户按Enter键时,将执行按钮的OnClick事件处理程序。 (4) Enabled属性:该属性决定按钮是否对鼠标、键盘和计时器事件做出响应。 (5) ModalResult属性:该属性确定按钮是否以及如何关闭其父窗体。 (6) Name属性:该属性是组件的名称,与Caption不同,它不显示在组件表面,而是在应用程序代码中作为组件的名称。3.3 按钮类组件 3.3.2 TBitBtn组件 TBitBtn位图按钮组件位于组件面板的Additional选项卡上(如图3-4所示),为图形按钮组件。3.3 按钮类组件 2主要属性 (1) Glyph属性:该属性指定在用户选择的位图按钮表面设置图形。单击该属性右边的“”按钮,弹出装入位图文件的Picture Editor对话框(如图4-6),在其中单击Load按钮选择用户需要的位图,此时选择的位图将显示在对话框中,再单击OK按钮后,位图将显示在按钮上。 (2) Kind属性:该属性决定位图按钮的种类,包括bkAbort、bkAll、bkCancel、bkClose、bkCustom、bkHelp、bkIgnore、bkNo、bkOK、bkRetry、bkRetry。 (3) Layout属性:该属性决定位图在按钮上的显示位置,即位图可以显示在按钮的左边、右边、上边或下边。 (4) Margin属性:该属性确定位图按钮边沿和位图边沿之间的距离,单位为像素。该属性的默认值为-1,表示位图和文字都在按钮的中间显示,但相互不重叠。 (5) NumGlyphs属性:当用户为位图按钮在Glyph属性中指定多个图像时,必须用该属性指定按钮要显示的图像,它的值可以是14之一,默认值为1。3.3 按钮类组件 (6) Spacing属性:该属性确定位图按钮上图像和标题之间的间隔。该属性值可以是负数、0和正数,默认值为4。 (7) Style属性:该属性决定位图按钮的外观,共有3种可能的值:bsAutoDetect、bsWin31和bsNew,即位图按钮采用Windows哪一种版本的风格。 lbsAutoDetect:表示当使用Windows 3.x时,位图按钮采用标准的Windows 3.x外观,当使用Windows 3.x以后的版本时,位图按钮采用较新的外观。 lbsWin31:表示不考虑所运行的Windows版本而采用标准的Windows 3.1外观。 lbsNew:表示不考虑所运行的Windows版本而采用新的位图按钮外观。3.3 按钮类组件 3.3.3 TSpeedButton组件 TSpeedButton组件位于组件面板Additional选项卡上(如图3-4),为加速按钮组件。 1用途 TSpeedButton组件可以同时显示图形和文字,用法与位图按钮很相似。在按钮上显示图像时,它的图像必须是Windows的位图文件(.bmp)。该组件常和TToolBar、TPanel等组件一起使用,用户使用该组件可快速建立工具栏和工具面板。 2主要属性 (1) AllowAllUp属性:该属性决定组中的快速按钮是否可一个都不选择。如果将其设置为true,那么在同一组中的快速按钮可一个都不选择,但可以出现;如果将其设置为false,则必须选择同一组中的快速按钮之一,即处于被按下状态,默认值为false。3.3 按钮类组件 (2) Down属性:该属性用来设置显示状态。如果将其设置为true,那么快速按钮以按下状态(Down)显示;如果将其设置为false,则快速按钮以未选中(UnSelect)状态显示。 (3) Flat属性:该属性值为true,则按钮在未选中状态下没有边框,只有在选中状态下才有边框。 (4) GroupIndex属性:该属性决定哪些快速按钮作为一组。默认时,它的值为0,表示该组件不属于某个组。具有相同GroupIndex属性值且不为0的快速按钮属于同一个组,当单击其中之一时,该按钮一直保持按下(Down)状态,直到单击了同一组的另一个按钮为止。3.3 按钮类组件 3.3.4 TRadioButton组件 TRadioButton单选按钮组件位于组件面板的Standard选项卡上(如图3-1),为单选按钮组件,可以在多个条件中选择唯一的一个。通常在使用单选按钮时,总是将其进行分组。在同一组中,只能同时选中一个按钮,其余按钮自动取消选中。在实现单选按钮的分组时,可以有两种方法: (1) 利用分组框组件(TGroupBox)和单选按钮组件(TRadioButton)实现。首先向窗体中添加分组框,然后向分组框中添加单选按钮。这样,同一个分组框中的单选按钮就自动成为一组。可以通过TRadioButton组件的Checked属性来确定哪一个单选按钮被选中。 (2) 利用单选按钮分组框(TRadioGroup)实现。可以通过ItemIndex属性来确定选中哪一个单选按钮。3.3 按钮类组件 1用途 TRadioButton组件也称为开关按钮。单选按钮为用户提供了一组相互排斥的选项按钮,无论何时选项组中最多只有一个选项被选择。如果在选择过程中又选择了另一个按钮,则先前被选择的按钮会自动变成未选择。 2主要属性 (1) Checked属性:该属性表示单选按钮是否被选中。如果该属性为true,则单选按钮的框中出现一个圆点并表示选中;默认值为false,表示未选中。 (2) Enable属性:该属性用来控制单选按钮是否处于激活状态。默认值为true,即激活状态;当该属性为false时,处于非激活状态,此时组件上显示的字体为灰色,表示该按钮不起作用。 (3) Visible属性:该属性决定该单选按钮在窗体上是否可视。默认值为true,即可视。3.3 按钮类组件 3.3.5 TCheckBox组件 TCheckBox复选框组件位于组件面板的Standard选项卡上(如图3-1),为复选按钮组件,可以组成多项选择。 1用途 TCheckBox组件称为复选框,用户可通过单击一个选项来选择或取消选择该选项,在一个选择组框中一次可做出多项选

温馨提示

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

最新文档

评论

0/150

提交评论