收藏 分销(赏)

Delphi-程序设计教程教学课件全书电子讲义.ppt

上传人:w****g 文档编号:10251503 上传时间:2025-04-30 格式:PPT 页数:199 大小:4.15MB
下载 相关 举报
Delphi-程序设计教程教学课件全书电子讲义.ppt_第1页
第1页 / 共199页
Delphi-程序设计教程教学课件全书电子讲义.ppt_第2页
第2页 / 共199页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Delphi,程序设计教程,第,1,章,初识Delphi,1.1 Delphi,简介,1.2 Delphi,学习方法,1.3 Delphi7,的安装,1.4 Delphi 7,的特点,1.5,一个简单的实例工程,1.1 Delphi,简介,1.1.1 Delphi,是什么?,Borland,公司推出软件开发工具,采用,Object Pascal,语言作为开发语言,提供几近完美的可视化开发特性,广泛的应用开发功能,强大的数据库支持,高效率的编译器,1.1 Delphi,简介,1.1.2 Delphi,的特点,可定制的开发环境,真正的面向对象,组件库,完全编译,1.2 Delphi,学习方法,良好的编程习惯,合理的数据结构,代码尽可能重用与模块化,良好的编写风格,注重程序测试,注意异常处理,1.2 Delphi,学习方法,必要的基本功,逻辑分析和建立数学模型的能力,数据结构和算法知识,丰富的实践经验,1.2 Delphi,学习方法,学习注意事项,事件驱动的编程方法,理解组件的概念并熟练应用,实践,真正的程序员用,Visual C+,,,聪明的程序员用,Delphi,1.3 Delphi7,的安装,安装硬件需求,Pentium166,以上的个人计算机,推荐,Pentinum333,以上,32MB,以上内存,推荐,64M,以上,Windows95/98,、,WindowsNT,和更高版本的操作系统,Delphi7,的紧凑安装需,100MB,以上的硬盘空间,VGA,或更高分辨率的显示器,极低的配置要求,这就是,Delphi,1.4 Delphi 7,的特点,跨平台的开发环境,大量的,Web,组件可实现各种网络协议,多种数据库支持,全新的,Rave,报表,全新的建模工具,1.5,一个简单的实例工程,新建应用程序,设置窗体属性,添加组件,设置组件的属性与事件响应程序,保存程序,编译运行,procedure TForm1.Button1Click(Sender:Tobject);,begin,ShowMessage(,欢迎使用,Delphi 7);,end;,Delphi,程序设计教程,第,2,章,Object Pascal,程序设计,2.1 Object Pascal,数据类型,2.2,运算符与表达式,2.3,流程控制,2.4,循环,2.5,过程与函数,2.6,数组,2.7,文件,2.8,指针类型,2.1 Object Pascal,数据类型,基本类型,整型,实型,字符型,字符串型,布尔型,自定义类型,类别类型,标识符,大小(,b y t e,),范围,整型,Integer,2/4,-3276832767/-2147483648 2147483647,Cardinal,2/4,065535/02147483647,ShortInt,1,-128127,SmallInt,2,-3276832767,LongInt,4,-21474836482147483647,Byte,1,0255,Word,2,065535,实型,Real,6,2.9E-391.7E38,,,-2.9E-39,1.7E38,Single,4,1.5E-453.4E38,,,-1.5E-45-3.4E38,Double,8,5.0E-3241.7E308,,,-5.0E-324-1.7E308,Extended,10,3.4E-49321.1E4932,,,-3.4E-4932-1.1E4932,Comp,8,-9.2E189.2E18,Currency,8,-922337203685477.5808 922337203685477.5807,布尔型,Boolean,1,True/False,ByteBool,1,True/False,WordBool,2,True/False,LongBool,4,True/False,字符型,Char,1,ASCII,码,String,0255,ASCII,码,2.1 Object Pascal,数据类型,整型(,integer,),基本整数类型包括,shortint,、,smallint,、,longint,、,byte,和,word,一般整数类型包括有符号整数(,Integer,)和无符号整数(,Cardinal,)两种,5,种算术运算,“,+,(加)、,(减)、*(乘)、,DIV,(除)、,MOD,(取余),”,6,种关系运算,“,=,(等于),”,、,“,(不等于),”,、,“,(小于),”,、,“,(大于),”,、,“,(大于等于),”,2.1 Object Pascal,数据类型,2.1.2,字符类型,AnsiChar,:标准的,1,字节的,ANSI,字符。,WideChar,:,WideChar,类型的数据为双字节,与,Unicode,字符集对应。,Unicode,字符集的前,256,个字符与,ANSI,字符集的相同。,Char,;通用的字符类型,在,Delphi6,以前相当于,AnsiChar,,在,Delphi6,以后版本中相当于,WideChar,。,Attention:,不能在应用程序中对字符长度进行直接编码,而应该使用,Sizeof(),函数,2.1 Object Pascal,数据类型,2.1.3,字符串类型,AnsiString,:这是,Pascal,缺省的字符串类型,它由,AnsiChar,字符组成,其长度没有限制,同时与,null,结束的字符串相兼容。,WideString,:功能上类似于,AnsiString,,但它是由,WideChar,字符组成的。,Pchar,:指向,null,结束的,Char,字符串的指针,类似于,C,的,char*,或,lpstr,类型。,PansiChar,:指向,null,结束的,AnsiChar,字符串的指针。,PWideChar,:指向,null,结束的,WideChar,字符串的指针。,小实例,:缺省情况下,如果用如下的代码来定义字符串,编译器认为是,AnsiString,字符串:,var,S:string;/,编译器认为,S,的类型是,AnsiString,2.1 Object Pascal,数据类型,2.1.3,字符串类型,编译开关,$H,的使用,当,$H,编译开关的值为负时,,string,变量是,ShortString,类型;,当,$H,编译开关的值为正时(缺省情况),字符串变量是,AnsiStr ing,类型。,小实例,:,var,$H-,S1:string;/S1,是,ShortString,类型,$H+,S2:string;/S2,是,AnsiString,类型,例外:如果在定义时特地指定了长度(最大在,255,个字符内),那么总是,ShortString,:,小实例,:,var,S:string63;/63,个字符的,ShortString,字符串,2.1 Object Pascal,数据类型,2.1.3,字符串类型,字符串运算符,/,用,+,运算符,var,s1,s2:string;,begin,s1:=,hello,;,s2:=,delphi,;,s1:=s1+s2;,/s1,的内容为,hellodelphi,end;,/,用,Concat,函数,var,s1,s2:string;,begin,s1:=,hello,;,s2:=,delphi,;,s1:=Concat(s1,s2);,/s1,的内容为,hellodelphi,end;,字符串的空间分配,var,S:string;/,字符初始化时,没有长度,begin,S:=hello;/,为字符串的字母分配足够的空间,/,或者,SetLength(S,8);/,分配,8,个字符的空间,end;,字符串的空间分配,var,S:string;,begin,S1:=c;/,不能工作,因为,S,没有被分配空间,end;,/,然而,代码改成如下,就能正常工作了:,var,S:string;,begin,SetLength(S,1);,S1:=c;/,现在,S,有足够空间来容纳字符,end;,2.1 Object Pascal,数据类型,2.1.4,布尔,(Boolean),类型,Boolean,型的常量只有,True,和,False,两个值,布尔类型的运算,AND,(逻辑与),OR,(逻辑或),NOT,(逻辑非),XOR,(异或),2.2,运算符与表达式,2.2.1,赋值运算符,Number:=25;,2.2.1,赋值运算符,操作符,操作,操作数类型,结果数据类型,+,加,Interger,real,Interger,real,-,减,Interger,real,Interger,real,*,乘,Interger,real,Interger,real,/,除,Interger,real,real,DIV,整数除,Interger,Interger,MOD,求余数,Interger,Interger,操作符,操作,操作数类型,结果数据类型,+,保持原数符号不变,Interger,real,Interger,real,-,求负,Interger,real,Interger,real,二元运算符,一元运算符,2.2,运算符与表达式,2.2.3,逻辑运算符,布尔运算符,位运算符,关系运算符,操作符,操作举例,操作数类型,结果类型,说明,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,运算,SHL,a SHL b,Integer,Integer,将,a,的二进制值左移,b,位,左移,1,位相当于乘,2,SHR,a SHR b,Integer,Integer,将,a,的二进制值右移,b,位,右移,1,位相当于除,2,关系符,操作,结果类型,=,等于,boolean,不等于,boolean,大于,boolean,=,大于等于,boolean,2.3,流程控制,2.3.1 If,语句,语法形式:,ifthen/,满足条件,1,执行语句组,1,begin,end,elseifthen/,满足条件,2,执行语句组,2,begin,end;,else/,前面条件都不满足则执行语句组,3,begin,end;,2.3,流程控制,2.3.1 If,语句,实例:,a:=1;,b:=2;,if ab then/,如果满足,if,后面的条件执行,then,后面的语句,begin,c:=0;,d:=1;,end,else/,如果不满足,if,后面的条件执行,Else,后面的语句,begin,c:=1;,d:=0;,end;,2.3,流程控制,2.3.2 CASE,语句,语法形式:,caseof,数值,1,:,begin,end;,数值,2,:,begin,end;,实例:,case x of /,对变量,x,进行多条件选择,10:/x=10,执行,begin,end,之间的语句,begin,x:=x*x*5;,y:=sin,(,x,),;,end;,2,4,17:/x,为,2,、,4,、,7,时执行语句,x:=x+1,x:=x+1;,3,5,18:/x,为,3,、,5,、,8,时执行语句,x:=x-1,x:=x-1;,2.4,循环,WHILE,语句,Timer:=0;,While Timer=20;,2.4,循环,FOR,语句,语法形式:,for:,todo,for:,downtodo,实例:,For x:=1 to 100 do,sum:=sum+x;,Attention:,适用于循环次固定的情况,2.5,过程与函数,过程与函数的定义,过程的定义,procedure ProcedureName,(,ParameterList,),;directives;,var,LocalDeclarations;,begin,statements,end;,函数的定义,function FunctionName(ParameterList):ReturnType;directives;,var,LocalDeclarations;,begin,statements,Result:=xxxxx;,end;,2.5,过程与函数,参数,称呼:,形参:函数定义时参数列表中的参数,实参:函数调用时参数列表中的参数,使用方法,数值参数,procedure Change(Nunber:Integer);,begin,Number:=Number*10;,end;,变量参数,procedure Change(var Number:Integer);,常量参数,procedure Change(const Number:Integer);,2.5,过程与函数,代码分析,定义:,PInteger=Integer;/,定义指针类型,procedure P1(var N:Integer);/,引用参数传递,begin,N:=N+1;,end;,procedure P2(N:Integer);/,普通参数传递,begin,N:=N+5;,end;,procedure P3(PT:PInteger);/,传递指针参数,begin,PT:=PT+10;,end;,调用:,i:Integer;,begin,i:=1;,P1(i);/,将,i,的值增加,1,Writeln(i,i);,P2(i);/,希望将,i,加,5,,但没有实现,Writeln(i,i);,P3(i);/,将,I,加,10,Writeln(i:,i);,Readln;,end.,输出结果:,i:2,i:2,i:12,2.6,数组,什么是数组:数组类型是某种数据类型的有序组合,类型定义方法,type,Dou=array1.25 of Double;,声明方法,var,TDou:Dou;,或,var,TDou:array 1.25 of Double;,使用方法,for i:=1 to 25 do,TDou i:=0;,多重数组声明,type,TTable=array1.25,1.25 of Double;,2.7,文件,文件:由一些具有相同类型的元素组成的线性序列,文件类型的声明:,file of,基类型;,文件类型的操作,Var F,:,File Of Integer,;,I,:,Integer,;,Begin,AssignFile(F,,,XXX.DAT,),;,Rewrite(F),;,I:=0,;,While(I100)Do Write(F,I);,CloseFile(F);,End;,2.9,指针类型,指针类型的变量指向内存空间的地址,定义:,type PointerName=typt;,Object Pascal,语言中的一些标准指针,指针类型,所指变量的类型,Pstring,PAnsiString,AnsiString,PbyteArray,ByteArray,Pcurrecy,Currency,Pextended,Extended,PoleVariant,OleVariant,PshortString,ShortString,Pvariant,Variant,PvarRec,TvarRec,(定义在,System,单元中),PtextBuf,TextBuf,(定义在,SysUtils,单元中),PwideString,WideString,PwordArray,TWordArray,(定义在,SysUtils,单元中),Delphi,程序设计教程,第,3,章,Delphi,开发环境,3.1 Delphi 7,开发环境详解,3.2,集成开发环境应用,3.3,常用调试技巧,3.1 Delphi 7,开发环境详解,IDE,包括,:,主窗口,菜单,组件选项板,工具栏,代码编辑器,窗体,Form,对象观察器,对象树浏览器,3.1 Delphi 7,开发环境详解,3.1.1 Delphi 7,主窗口,File,菜单,New,子菜单,New Items,对话框,3.1 Delphi 7,开发环境详解,3.1.1 Delphi 7,主窗口,(,菜单,),Search,菜单,Edit,菜单,View,菜单,3.1 Delphi 7,开发环境详解,3.1.1 Delphi 7,主窗口,(,菜单,),Debug,菜单,Project,菜单,Run,菜单,3.1 Delphi 7,开发环境详解,3.1.1 Delphi 7,主窗口,(,菜单,),Component,菜单,Database,菜单,Tools,菜单,3.1 Delphi 7,开发环境详解,3.1.1 Delphi 7,主窗口,(,工具条与组件板,),定制工具条,定制组件对话框,3.1 Delphi 7,开发环境详解,3.1.2,对象树浏览器,3.1.3,对象观察器,事件标签页,特性标签页,定制对象观察器,3.1 Delphi 7,开发环境详解,3.1.4,窗体,3.1.5,代码编辑器,代码编辑器,3.2,集成开发环境应用,开发步骤,(,1,)创建一个新项目。,(,2,)创建窗体。,(,3,)在窗体内放入组件。,(,4,)处理窗体、组件响应的事件。,(,5,)编译程序。,3.3,常用调试技巧,3.3.1,程序错误的类型,1.,设计时期错误,2.,编译期错误,3.,运行期错误,4.,逻辑错误,3.3.2,使用,Run,菜单命令调试程序,1.,单步执行,2.,跟踪执行,3.,跳过一段代码,4.,返回到执行点,5.,直接运行程序,6.,暂停运行程序,7.,重新开始运行,3.3,常用调试技巧,3.3.3,使用断点,1.,设置断点,2.,查找断点,3.,删除断点,4.,禁止和激活断点,5.,修改断点的属性,设置断点,3.3,常用调试技巧,3.3.4,使用监视窗口,1.,添加一个监视窗口,在代码编辑器中找到要跟踪的变量或表达式,在该处按下热键,Ctrl,F5,使用菜单上的,“,Run|Add Watch,”,命令,在代码编辑器中,右击要跟踪的变量或表达式,然后在弹出的快捷菜单中,“,Debug|Add Watch At Cursor,”,命令,选择,“,View|Debug Windows|Watches,”,命令,2.,删除监视窗口,3.,设置监视窗口的属性,Delphi,程序设计教程,第,4,章 面向对象编程,4.1,面向对象的概念,4.2 Object Pascal,语言的面向对象技术,4.3 Delphi,中的消息机制,4.4 Delphi,类库和组件,4.5,基于组件的可视化程序设计,4.1,面向对象的概念,4.1.1,对象和类的概念,1.,对象的封装性,2.,对象的继承性,3.,对象的多态性,域(,field,),,也被称为域定义或实例变量,域是包含在对象中的数据变量。,方法(,method,),,属于一个对象的过程和函数名,在,C+,中它被称为成员函数。,属性(,property,),,属性是外部代码访问对象中的数据和代码的访问器,属性隐藏了,一个对象的具体实现的细节。,手机对象示例,4.1,面向对象的概念,4.1.2,面向对象程序设计,开发时间短,效率高,可靠性高,所开发的程序更强壮。由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短了开发时间。,应用程序更易于维护、更新和升级。继承和封装使得应用程序的修改带来的影响更加局部化。,面向对象方法来进行,Windows,程序的设计与开发是极其方便的和自然的。在,Windows,中,程序的基本单位是窗口。从面向对象的角度来看,窗口本身就是一个对象。,Windows,程序的执行过程本身就是窗口和其他对象的创建、处理和消亡过程。,Windows,中的消息的发送可以理解为一个窗口对象向别的窗口对象请求对象的服务过程。,采用面向对象的方法来进行,Windows,程序设计还可以简化对资源的管理。,4.2 Object Pascal,语言的面向对象技术,4.2.1,类的定义,类的定义,type =class(,基类标识符,),成员列表,end;,标明,“,能见度,”,的保留字,private,Protected,public,published,automated,4.2 Object Pascal,语言的面向对象技术,4.2.2,属性,4.2.3,方法,分类:,静态方法,虚拟方法,动态方法,消息处理方法,使用:,方法的覆盖,方法的重载,重新引入方法名称,TMyObject=class,private,SomeValue:integer;,Procedure SetValue(a:integer);,Public,Property value:integer read SomeValue write SomeValue;,end;,procedure TMyObject.SetValue(a:integer);,begin,if SomeValuea then,SomeValue:=a;,end;,对象示例,TfooChild=class(TFoo,),Procedure IamAVitual;override;,Procedure IamADynamic;override;,Procedure IamAMessage(var M:TMessage,),;message wm_SomeMessage;,end;,Type,TSomeClass=class,Procedure Amethod(I:integer);overload;,Procedure Amethod(S:string);overload;,Procedure Amethod(D:double);overload;,end;,Type,TSomeBase=class,Procedure A;,end;,TSomeClass=class,Procedure A;reintroduce;,end;,方法的覆盖,方法的重载,重新引入方法名称,4.2 Object Pascal,语言的面向对象技术,4.2.4,多态性,面向对象的程序设计语言还可以在运行时才确定对象方法的调用地址,这种调用函数的方式叫做多态性,有时也称为动态联编或滞后联编。,在,Object Pascal,语言中,多态性是通过虚拟方法或动态方法实现的。,4.2 Object Pascal,语言的面向对象技术,4.2.5,类运算符,(1)is,运算符,is,运算符用来检测一个对象在运行时的类的类型,具体形式如下:,object is class,如果返回值为,True,,那么对象,object,是类,class,的一个实例,或者是类,class,的派生类的一个实例。如果对象为,nil,,返回值则为,False,。,(2)as,运算符,as,运算符用来进行类型转换检测的,具体形式如下:,object as class,返回值为,object,的一个引用,类型为,class,类型。在运行期间,,object,必须是与,class,类兼容的一个类的对象或者为,nil,。通常为了避免类型不兼容,可以使用,is,运算符来进行类型判断。,4.3 Delphi,中的消息机制,什么是消息?,消息是向某对象请求服务的一种表达方式,消息驱动机制,对消息进行收集、分发和处理的机制,消息驱动机制,使得形式上完全分离的各个模块、各个对象之间达到了动态链接,同时打破了进程事先有序、过程驱动的传统程序设计方法,4.3 Delphi,中的消息机制,消息的声明,type TMessage=packed record,Msg:Cardinal;,case Integer of,0:(,wParam:Longint;,lParam:Longint;,Result:Longint);,1:(,wParamLo:Word;,wParamHi:Word;,lParamLo:Word;,lParamHi:Word;,ResultLo:Word;,ResultHi:Word);,end;,键盘消息的定义,TWMKey=packed record,Msg:Cardinal;,CharCode:Word;,Unused:Word;,KeyData:Longint;,Result:Longint;,end;,常用的键盘消息,WM_KEYDOWN,WM_KEYUP,WM_CHAR,WM_SYSKEYDOWN,WM_SYSKEYUP,WM_SYSCHAR,4.3 Delphi,中的消息机制,通知消息,类型,消 息,含 义,按,钮,BN_CLICKED,用户选择了按钮,BN_DISABLE,按钮被禁止,BN_DOUBLECLICKED,用户双击了按钮,BN_HILITE,用户加亮了按钮,BN_PAINT,按钮应当重画,BN_UNHILITE,加亮应当去掉,组,合,框,CBN_CLOSEUP,组合框的列表框被关闭,CBN_DBLCLK,用户双击了一个字符串,CBN_DROPDOWN,组合框的列表框被拉出,CBN_EDITCHANGE,用户修改了编辑框中的文本,CBN_EDITUPDATE,编辑框内的文本即将更新,CBN_ERRSPACE,组合框内存不足,CBN_KILLFOCUS,组合框失去输入焦点,CBN_SELCHANGE,在组合框中选择了一项,CBN_SELENDCANCEL,用户的选择应当被取消,CBN_SELENDOK,用户的选择是合法的,CBN_SETFOCUS,组合框获得输入焦点,类型,消 息,含 义,编,辑,框,EN_HSCROLL,用户点击了水平滚动条,EN_ERRSPACE,编辑框内存不足,EN_CHANGE,编辑框中的文本己更新,EN_KILLFOCUS,编辑框正在失去输入焦点,EN_MAXTEX T,插入的内容被截断,EN_SETFOCUS,编辑框获得输入焦点,EN_UPDATE,编辑框中的文本将要更新,EN_VSCROLL,用户点击了垂直滚动条,列,表,框,LBN_DBLCLK,用户双击了一项,LBN_ERRSPACE,列表框内存不够,LBN_KILLFOCUS,列表框正在失去输入焦点,LBN_SELCANCEL,选择被取消,LBN_SELCHANGE,选择了另一项,LBN_SETFOCUS,列表框获得输入焦点,Win32,中标准,Windows,组件的所有通知消息,4.4 Delphi,类库和组件,4.4.1,什么是,VCL,VCL,就是组件库,它是由一些称作组件的预见对象组成,在,Delphi,中,组件是可视化编程的基础,是某些类的对象,程序员用它来设计用户界面,并且给予应用程序一些非可视化功能,4.4 Delphi,类库和组件,4.4.2 VCL,的类型,标准组件:,Delphi,提供了标准组件来封装,Windows 95/98,组件的行为,如,TButton,、,TMemo,、,TListView,和,TTreeView,等。,自定义组件:程序员根据需要自己开发的组件。,图形组件:只具有显示的功能,如,TImage,,,TLabel,,,TBevel,和,TShape,等。,非可视组件,:,程序运行之后不可见,如,TTable,,,TTimer,和,TOpenDialog,等等。,4.4 Delphi,类库和组件,4.4.4,组件的使用步骤,在组件工具栏上选择所需的组件所在的标签。,选择所需的组件。,在窗体的适当位置单击,则组件被加入到窗体中。,在对象监视器的,Properties,标签中设置该组件的属性。,视需要有选择地使用对象监视器的,Events,标签,设置其事件过程,并在程序浏览器中编辑该事件过程。,4.5,基于组件的可视化程序设计,4.5.1,设计一个字体对话框,新建一个窗体。,在窗体中添加组件。,添加代码。,运行程序。,字体对话框,4.5,基于组件的可视化程序设计,4.5.2,设计资源管理器,资源管理器,Delphi,程序设计教程,第,5,章,VCL,详解,5.1 VCL,的层次结构,5.2,组件栏介绍,5.3,组件开发技术,5.1 VCL,的层次结构,5.1.1VCL,的层次结构,5.1 VCL,的层次结构,5.1.2,核心类介绍,TObject,类,:,系统中所有类的基类,TComponent,类,:,所有组件的基类,TControl,类,:,所有可视组件的基类,5.1 VCL,的层次结构,5.1.3 VCL,的通用属性、方法和事件,(,1,),VCL,组件的属性,TmyTry=class,Private,Thevalue:String;,Procedure SetThevalue(Avalue:String);,Public,Property value:string read Thevalue write SetThevalue;,End;,Procedure TmyTry.SetThevalue(Avalue:string);,Begin,If Thevalue Avalue then,Thvalue:=Avalue;,End;,5.1 VCL,的层次结构,5.1.3 VCL,的通用属性、方法和事件,(,2,),VCL,组件的方法,Type,Tmytry=class,Male:Boolean;,Gender:string;,Procedure Judgethegender;,end;,Procedure Tmytry.Judgethegender;,Begin,If male then,Gender:=,I am a man,;,Else,Gender:=,I am a woman,;,end;,5.1 VCL,的层次结构,5.1.3 VCL,的通用属性、方法和事件,(,3,),VCL,组件的事件,type,TForm1=class(TForm),button1:Tbutton;,button2:Tbutton;,procedure TForm1.Button1Click(Sender:TObject);,procedure TForm1.Button2Click(Sender:TObject);,end;,procedure TForm1.Button1Click(Sender:TObject);,begin,end;,procedure TForm1.Button1Click(Sender:TObject);,begin,Button2.OnClick:=Button1Click;,End;,5.2,组件栏介绍,5.2.1,界面组件,界面实例,5.2,组件栏介绍,5.2.2,网络组件,网络应用实例,5.2,组件栏介绍,5.2.2,网络组件,关键代码:,if Edit3.Text ,begin,IdTCPServer.DefaultPort:=StrToInt(Edit3.Text);,/,打开,TCP,服务器,,TCP,服务器开始监听客户的请求,IdTCPServer.Active:=true;,end;,/,建立连接,IdTCPClient.Host:=Edit1.Text;,IdTcpClient.Port:=StrtoInt(Edit2.Text);,try,IdTCPClient.Connect;,ClientHandleThread:=TClientHandleThread.Create(True);,ClientHandleThread.FreeOnTerminate:=True;,ClientHandleThread.Resume;,except,on E:Exception do MessageDlg(,链接错误,:+#13+E.Message,mtError,mbOk,0);,end;,5.2,组件栏介绍,5.2.3,数据库组件,BDE,技术,Interbase,技术,dbExpress,技术,ADO,技术,数据库应用实例,5.3,组件开发技术,5.3.1,自定义组件概况,组件和组件包,自定义组件的分类:界面增强类、图形图像类、多媒体类、系统类、数据库类、网络类等等,比较有名的自定义组件:,Rxlib2.75,、,AHM2000 for Delphi,、,ABC5D,、,XlGrid1.62,、,CoolMenu1.5,、,DragDrog3.7,5.3,组件开发技术,5.3.2,设计新组件的起点,修改已有的控制,建立原始控制,建立图形控制,建立,Windows,控制的子类,建立非可视组件,途 径,起 始 类,修改已有组件,任何已有组件,如,TButton,、,TListBox,或抽象组件对象如,TCustomListBox,建立原始控制,TCustomControl,建立图形控制,TGraphicControl,建立窗口控制的子类,TWinControl,建立非可视组件,Tcomponent,5.3,组件开发技术,5.3.3,开发自定义组件的一般步骤,建立包含新组件的库单元;,从已有组件类型中继承得到新的组件类型;,增加属性、方法和事件;,用,Delphi 7,注册组件;,为组件的属性方法和事件建立,Help,文件。,5.3,组件开发技术,5.3.3,开发自定义组件的具体步骤,(,1,)确定祖先类。通过前面的学习,我们明白了,VCL,的层次结构,由此也就知道了,其实每一个可视组件都有其父类的。所以在开发可视组件时,先要确定它的父类(也叫祖先类)。,(,2,)创建组件的单元文件。组件的具体实现是放在一个单元文件里,在这个单元文件里定义了组件的属性、方法、事件及具体实现。,(,3,)添加属性。,(,4,)添加事件。,(,5,)定义方法。,(,6,)定义构造方法和析构方法。这两个方法不是必须的,因为系统里有默认的方法,一般只在有初始数据属性时才用到。,(,7,)注册组件。组件要注册后才可用,才会出现在工具栏中。,(,8,)测试组件。只有经过测试过的组件才可使用。所以,在组件注册成功后,一定要测试一下它的各个方法,直到确信完全正确为止。,Delphi,程序设计教程,第,6,章 界面组件与应用,6.1 窗体及其应用,6.2,常用组件介绍,6.3 菜单设计,6.4 界面设计综合应用,6.1 窗体及其应用,窗体组件中常用属性、事件和方法,FormStyle,属性:设置窗体的类型,Icon,属性:用于设置窗体最小化时的图标。,OnCreate,事件:用于创建一个窗体,如果该窗体位于,AutoCreate,列表框中,那么当应用程序加载时,它会被自动激活。,OnKeyDown,事件:用于捕获专用击键和击键组合,OnDestroy,事件:如果窗体是自动创建的,那么当应用程序关闭时,,OnDestroy,事件被激活,否则,由窗体的,Destroy,析构函数激活。,6.2,常用组件介绍
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服