Visual-FoxPro程序设计第七章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Visual-FoxPro程序设计第七章课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual FoxPro 程序设计 第七 课件
- 资源描述:
-
1、Visual FoxPro 6.0 程序设计.课件-1-第第7 7章章 表单的设计表单的设计 7.1 7.1 面向对象的基本概念面向对象的基本概念 7.2 7.2 表单设计表单设计 7.3 7.3 表单控件设计表单控件设计提示:单击各个标题前的动画符号“”,链接到相应的章节。Visual FoxPro 6.0 程序设计.课件-2-qVisual FoxPro 6.0Visual FoxPro 6.0采用了面向对象的程序设计方法。其采用了面向对象的程序设计方法。其中,表单设计是中,表单设计是Visual FoxPro 6.0Visual FoxPro 6.0程序设计的主要工作程序设计的主要工作之
2、一。设计表单的过程就是设计程序界面的过程;表单之一。设计表单的过程就是设计程序界面的过程;表单为数据库信息的显示、输入和编辑提供了非常简便的方为数据库信息的显示、输入和编辑提供了非常简便的方法。法。q本章主要介绍面向对象的基本概念;介绍如何使用表单本章主要介绍面向对象的基本概念;介绍如何使用表单向导和表单设计器设计不同的表单;介绍表单中最常用向导和表单设计器设计不同的表单;介绍表单中最常用控件的使用方法;结合实例讲解表单及其控件的属性、控件的使用方法;结合实例讲解表单及其控件的属性、事件和方法的调用方法。事件和方法的调用方法。Visual FoxPro 6.0 程序设计.课件-3-7.1 7.
3、1 面向对象的基本概念面向对象的基本概念 7.1.1 7.1.1 对象的属性、事件和方法对象的属性、事件和方法 7.1.2 Visual FoxPro 7.1.2 Visual FoxPro中的类中的类Visual FoxPro 6.0 程序设计.课件-4-7.1 面向对象的基本概念q面向对象(面向对象(Object-OrientedObject-Oriented)是按照人类认识世界的方法)是按照人类认识世界的方法和思路方式来解决问题,它把要处理的事物划分成概念上和思路方式来解决问题,它把要处理的事物划分成概念上的对象单元,然后再编程处理不同对象单元里的数据即操的对象单元,然后再编程处理不同对
4、象单元里的数据即操作。作。q传统的程序设计使用的是面向过程的编程方法。用面向过传统的程序设计使用的是面向过程的编程方法。用面向过程方法编写的程序,它的运行是按设计好的顺序执行各项程方法编写的程序,它的运行是按设计好的顺序执行各项功能和操作的。其缺点是程序员始终要关心什么时候发生功能和操作的。其缺点是程序员始终要关心什么时候发生什么事情。什么事情。q面向对象程序设计所追求的目标,是用符合人类处理问题面向对象程序设计所追求的目标,是用符合人类处理问题的思维方式,将现实世界中的问题求解尽可能地简单化。的思维方式,将现实世界中的问题求解尽可能地简单化。Visual FoxPro 6.0Visual F
5、oxPro 6.0支持面向对象程序设计用面向对象方法支持面向对象程序设计用面向对象方法编写的程序,它的运行没有严格的固定顺序,是通过事件编写的程序,它的运行没有严格的固定顺序,是通过事件来驱动不同的程序段,既由不同对象上的各种事件来驱动来驱动不同的程序段,既由不同对象上的各种事件来驱动不同的程序功能和操作。在事件驱动编程中,程序员只要不同的程序功能和操作。在事件驱动编程中,程序员只要编写响应用户动作的程序,如选择菜单命令、单击鼠标等,编写响应用户动作的程序,如选择菜单命令、单击鼠标等,而不必考虑按精确次序执行的每个步骤。在这种机制下,而不必考虑按精确次序执行的每个步骤。在这种机制下,不必编写一
6、个大型的程序,而是建立一个由若干小程序组不必编写一个大型的程序,而是建立一个由若干小程序组成的应用程序,这些小程序可以由用户启动的事件来激发。成的应用程序,这些小程序可以由用户启动的事件来激发。Visual FoxPro 6.0 程序设计.课件-5-7.1.1 对象的属性、事件和方法q在面向对象的程序设计语言里,用在面向对象的程序设计语言里,用“对象对象”表现要处理的事物,表现要处理的事物,用用“属性属性”表示事物的状态和特征,用表示事物的状态和特征,用“事件事件”表示处理事物表示处理事物的动作,用的动作,用“方法方法”表现处理事物的过程。表现处理事物的过程。q在在Visual FoxPro
7、6.0Visual FoxPro 6.0中,对象的特征和数据称为中,对象的特征和数据称为“属性属性”,由对象识别的一个动作称为由对象识别的一个动作称为“事件事件”,在对象上完成的操作过,在对象上完成的操作过程称为程称为“方法方法”。1 1对象对象q对象(对象(ObjectObject):指现实世界中的所有实体,包括事、物、概):指现实世界中的所有实体,包括事、物、概念等。例如,一台电脑是一个对象,一间教室也是一个对象。念等。例如,一台电脑是一个对象,一间教室也是一个对象。q如果将教室对象拆开来看,其组成有讲台、黑板、课桌、课椅、如果将教室对象拆开来看,其组成有讲台、黑板、课桌、课椅、屏幕、投影
8、仪等,每一个设备都是一个对象,即教室对象是由屏幕、投影仪等,每一个设备都是一个对象,即教室对象是由多个多个“子子”对象组成的。此时教室对象称为一个包容器对象。对象组成的。此时教室对象称为一个包容器对象。在面向对象系统中一切组成元素都是对象,大到整个系统、项在面向对象系统中一切组成元素都是对象,大到整个系统、项目、数据库、表、表单,小到窗口、控件都被视为对象。从面目、数据库、表、表单,小到窗口、控件都被视为对象。从面向对象编程的角度来看,对象是一个逻辑实体,它包括数据和向对象编程的角度来看,对象是一个逻辑实体,它包括数据和完成处理所需要的程序代码,是数据和代码的组合完成处理所需要的程序代码,是数
9、据和代码的组合,一个对象一个对象建立以后,其操作就通过与该对象有关的属性、事件和方法来建立以后,其操作就通过与该对象有关的属性、事件和方法来描述。描述。q常见的对象有:表单、命令按钮、标签、文本框、列表框等。常见的对象有:表单、命令按钮、标签、文本框、列表框等。Visual FoxPro 6.0 程序设计.课件-6-2 2属性属性q属性(属性(PropertyProperty):用来表示对象的状态和特征。例如,一个命):用来表示对象的状态和特征。例如,一个命令按钮是一个对象,其位置、大小、颜色等,都是它的属性。令按钮是一个对象,其位置、大小、颜色等,都是它的属性。q在在Visual FoxPr
10、o 6.0Visual FoxPro 6.0中,属性值的设置或修改可以通过属性窗中,属性值的设置或修改可以通过属性窗口来进行,也可以通过编程的方法在程序运行的时候来改变对象口来进行,也可以通过编程的方法在程序运行的时候来改变对象的属性。的属性。q程序代码中设置属性的格式:程序代码中设置属性的格式:表单名对象名属性名属性值表单名对象名属性名属性值3 3事件事件q事件(事件(EventEvent):是由系统预先定义好的、能够被对象识别的动):是由系统预先定义好的、能够被对象识别的动作。例如,鼠标单击作。例如,鼠标单击(Click)(Click)、双击、双击(DblClickDblClick)等动作
11、都是事件。等动作都是事件。q对象的事件是系统定义好的,用户不能创造出新的事件。同一个对象的事件是系统定义好的,用户不能创造出新的事件。同一个对象上可以发生多个事件,不同的对象所能识别的事件也不完全对象上可以发生多个事件,不同的对象所能识别的事件也不完全相同。一个事件对应于一个程序,称为事件过程。事件一旦被触相同。一个事件对应于一个程序,称为事件过程。事件一旦被触发,系统立即执行与该事件对应的事件过程。发,系统立即执行与该事件对应的事件过程。q在在Visual FoxPro 6.0Visual FoxPro 6.0中,虽然一个对象上可以识别多个事件,中,虽然一个对象上可以识别多个事件,但程序中并
12、不一定要为该对象编写对应的事件过程。所以,具体但程序中并不一定要为该对象编写对应的事件过程。所以,具体对象是否拥有或拥有多个事件过程,需要根据具体的程序要求来对象是否拥有或拥有多个事件过程,需要根据具体的程序要求来确定。对于某个对象必须响应的事件,需要编写该事件的事件过确定。对于某个对象必须响应的事件,需要编写该事件的事件过程;而对于不必理会的事件则不需要编写事件过程。程;而对于不必理会的事件则不需要编写事件过程。Visual FoxPro 6.0 程序设计.课件-7-4 4方法方法q方法(方法(ethodethod)是与对象相关联的过程,用于完成某种)是与对象相关联的过程,用于完成某种特定的
13、功能。例如,表单对象就拥有特定的功能。例如,表单对象就拥有“释放表单释放表单”等方等方法。法。q方法是和对象紧密连接在一起,它附属于对象。不同的方法是和对象紧密连接在一起,它附属于对象。不同的对象拥有系统预先定义好的各种不同的内部方法。方法对象拥有系统预先定义好的各种不同的内部方法。方法中的具体程序是被中的具体程序是被“封装封装”在对象之中,用户可以根据在对象之中,用户可以根据需要建立新的方法。方法的代码是在程序中调用,调用需要建立新的方法。方法的代码是在程序中调用,调用的格式如下:的格式如下:变量名变量名=对象名对象名.方法名方法名()()q综上所述,对象是属性、事件和方法的集合体;是一个综
14、上所述,对象是属性、事件和方法的集合体;是一个封装了属性、事件和方法的实体。对象的基本特点是具封装了属性、事件和方法的实体。对象的基本特点是具有属性,用来描述自己的状态;具有方法,用来构成自有属性,用来描述自己的状态;具有方法,用来构成自己的行为;具有事件,用来响应外界的动作。己的行为;具有事件,用来响应外界的动作。q在程序设计中,定义了对象的属性、事件和方法就决定在程序设计中,定义了对象的属性、事件和方法就决定对象的外观和它的动作。用户通过属性、事件和方法来对象的外观和它的动作。用户通过属性、事件和方法来处理对象。处理对象。Visual FoxPro 6.0 程序设计.课件-8-5 5对象引
15、用对象引用q在面向对象程序设计中,常常需要引用对象或引用对象在面向对象程序设计中,常常需要引用对象或引用对象的属性、事件和方法。在引用对象时,需要标识出该对的属性、事件和方法。在引用对象时,需要标识出该对象在对象层次结构中的层次。例如,同在文件目录结构象在对象层次结构中的层次。例如,同在文件目录结构中,要访问一个文件就要标识出该文件的路径。中,要访问一个文件就要标识出该文件的路径。q对象的引用分为绝对引用和相对引用。对象的引用分为绝对引用和相对引用。(1 1)对象绝对引用)对象绝对引用q对象绝对引用通过提供对象完整的容器层次来引用对象。对象绝对引用通过提供对象完整的容器层次来引用对象。绝对引用
16、关系为:表单集绝对引用关系为:表单集.表单表单.页框页框.页页.控件控件.属性属性q例如例如,在嵌套的容器中,使命令按钮在嵌套的容器中,使命令按钮1 1(Command1Command1)可用,)可用,可以通过设置命令按钮的可以通过设置命令按钮的EnabledEnabled属性来实现。属性来实现。Formset.Form.PageFrame.Page.Command1.Enabled=.T.Formset.Form.PageFrame.Page.Command1.Enabled=.T.Visual FoxPro 6.0 程序设计.课件-9-(2 2)对象相对引用)对象相对引用q对象相对引用是通
17、过使用一些属性和关键字,直接从对对象相对引用是通过使用一些属性和关键字,直接从对象某层次中引用对象。对象相对引用时,要指明从哪一象某层次中引用对象。对象相对引用时,要指明从哪一级对象开始引用对象。相对引用常用的关键字如下:级对象开始引用对象。相对引用常用的关键字如下:THISFORMSETTHISFORMSET:表示包含该对象的表单集。:表示包含该对象的表单集。THISFORMTHISFORM:表示包含该对象的表单。:表示包含该对象的表单。THISTHIS:表示当前对象。:表示当前对象。PARENTPARENT:该对象的直接容器。:该对象的直接容器。q使用相对引用的关键字,在容器层次结构中表示
18、某个层使用相对引用的关键字,在容器层次结构中表示某个层次,其引用关系为:次,其引用关系为:THISFORMSET.THISFORM.THIS.PropertyTHISFORMSET.THISFORM.THIS.Property(表单集(表单集.表单表单.对象对象.属性)或属性)或Parent.Object.PropertyParent.Object.Property(Parent.Parent.对象对象.属性属性)。q例如,例如,THISform.label1.caption=THISform.label1.caption=中国北京,加油中国北京,加油,表示将泵表单的标签表示将泵表单的标签la
19、bel1label1的标题属性设置成的标题属性设置成 中国北京,中国北京,加油加油。Visual FoxPro 6.0 程序设计.课件-10-7.1.2 Visual FoxPro中的类q现实世界中,类是指同一类型事物的集合。在面向对象现实世界中,类是指同一类型事物的集合。在面向对象的程序设计中,通常把类看作是一组相似对象的集合;的程序设计中,通常把类看作是一组相似对象的集合;类又被称为对象的原型或对象的模板。类又被称为对象的原型或对象的模板。1 1类的基本概念类的基本概念q类类(Class)(Class)是指已经定义的、关于对象的特征和行为的模是指已经定义的、关于对象的特征和行为的模板。类是
20、对一组相似对象的共同抽象描述,它将该组对板。类是对一组相似对象的共同抽象描述,它将该组对象所具有的共同特征集中起来,用于说明该组对象的性象所具有的共同特征集中起来,用于说明该组对象的性质和能力。在质和能力。在Visual FoxPro 6.0Visual FoxPro 6.0中,表单控件工具栏中中,表单控件工具栏中的每个控件按钮都代表了一个类,使用其中控件按钮在的每个控件按钮都代表了一个类,使用其中控件按钮在表单上创建的每一个控件都是具体的对象。表单上创建的每一个控件都是具体的对象。q类和对象的关系如下:类和对象的关系如下:(1 1)类是对象的模板)类是对象的模板(2 2)对象是类的实例)对象
21、是类的实例q综上所述,对象的属性、事件和方法都是在定义类时被综上所述,对象的属性、事件和方法都是在定义类时被指定的。由于类是定义了对象特征、外观和行为的模板,指定的。由于类是定义了对象特征、外观和行为的模板,所以对象由类生成,生成的对象也自然具有相同的属性、所以对象由类生成,生成的对象也自然具有相同的属性、事件和方法。事件和方法。Visual FoxPro 6.0 程序设计.课件-11-2 2基类基类q基类是基类是Visual FoxPro 6.0Visual FoxPro 6.0内部预内部预先定义的类。在基类的基础上,用先定义的类。在基类的基础上,用户可以新建自定义的子类。基类还户可以新建自
22、定义的子类。基类还可以创建对象,这些对象将继承该可以创建对象,这些对象将继承该基类的功能。基类的功能。q在在Visual FoxPro 6.0Visual FoxPro 6.0中可以查看中可以查看基类,方法如下:基类,方法如下:(1 1)单击)单击“文件文件”|“|“新建新建”命令,命令,打开打开“新建新建”对话框,如图对话框,如图7-17-1所所示。示。图7-1“新建”对话框 Visual FoxPro 6.0 程序设计.课件-12-图7-2“新建类”对话框(2)选中)选中“类类”单选按钮,单击单选按钮,单击“新建文件新建文件”按钮,打开按钮,打开“新建类新建类”对话框,如图对话框,如图7-
23、2所示。所示。(3)在)在“新建类新建类”对话框的对话框的“派生于派生于”下拉列表框中包含下拉列表框中包含了全部基类。如表单了全部基类。如表单(Form)、表单集、表单集(FormSet)、表单控件、表单控件工具栏中所有的控件也是基类。工具栏中所有的控件也是基类。Visual FoxPro 6.0 程序设计.课件-13-3 3子类子类q在父类的基础上创建出的新类,称为子类。父类产生子在父类的基础上创建出的新类,称为子类。父类产生子类的过程称为派生。父类可以是类的过程称为派生。父类可以是Visual FoxPro 6.0Visual FoxPro 6.0基类,基类,也可以是其他已存在的类。也可以
24、是其他已存在的类。q子类拥有父类的全部功能,即具有继承性,并在此基础子类拥有父类的全部功能,即具有继承性,并在此基础上,可以添加子类自己的功能。如果修改了父类的功能,上,可以添加子类自己的功能。如果修改了父类的功能,修改后的功能会自动反映到子类中。修改后的功能会自动反映到子类中。4 4类的特征类的特征 类具有抽象性、封装性、继承性、多态性等特征。类具有抽象性、封装性、继承性、多态性等特征。5 5Visual FoxPro 6.0Visual FoxPro 6.0中类的类型中类的类型 可以分为容器类和控件类。可以分为容器类和控件类。(1 1)容器类)容器类 容器类可以容纳别的对象,这些对象可以是
25、容器类对象,容器类可以容纳别的对象,这些对象可以是容器类对象,也可以是控制类对象,并且允许访问这些对象。也可以是控制类对象,并且允许访问这些对象。Visual FoxPro 6.0 程序设计.课件-14-Visual FoxPro 6.0提供的容器类的类别、名称和所能包含提供的容器类的类别、名称和所能包含的控件类对象见下表。的控件类对象见下表。Visual FoxPro 6.0 程序设计.课件-15-(2)控件类)控件类 控件类可以包含在容器类中,但不能容纳其他对象,它的封控件类可以包含在容器类中,但不能容纳其他对象,它的封装比容器类更为严密。容器类与控制类的根本区别在于,容器装比容器类更为严
展开阅读全文