版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章 表单设计基础6.1 面向过程和面向对象的程序设计6.2 面向对象的基本概念6.3 VFP中的类和对象6.4 事件和方法程序16.1 面向过程和面向对象的程序设计6.1.1 面向过程的程序设计 在面向过程的程序设计中,整个系统以功能分类,它被划分成各类功能模块,各个功能模块如果需要,还必须划分为更为具体的小功能模块,直至该功能模块能以一个函数或一个过程来实现为止。它具有思路清晰、功能单一等特点,但其缺点也是很明显的,主要表现在:1程序代码被分为模块和函数,程序越大,在代码中出现错误的可能性也就越大,因此不便维护和修改。22程序设计人员需要用大量的时间去设计输入输出界面,而且设计出来的界面
2、又不能像用户普遍使用的如WINDOWS视窗操作系统那样被接受。3程序在执行过程中受过程的控制,会一直独占计算机的资源,难以实现多任务的操作。 由于以上这些问题,使得VFP程序设计逐渐演变发展到了OOP。现在的VFP等Windows应用软件,既提供了传统的面向过程的程序设计方法,也提供了以下的程序设计方法。3面向对象程序设计的两个基本特点是:(1) 它是可视化的编程方式。(2) 程序运行没有一定的顺序,由事件驱动。 对象是程序和数据的结合体,是VFP的一个操作单位。对象和对象又可组成新的对象。在面向对象的程序设计方法中,用户需要考虑的是如何创建对象,及对对象应实施哪些操作,每个操作应完成什么功能
3、,以完成用户提出的所有要求。6.1.2 面向对象的程序设计4 在面向对象的程序设计中,最重要的概念是对象和类,它们是关系密切但又完全不同的两个概念。6.2.1对象(object) 对象是数据和数据操作代码的组合体。对象既具有静态的属性又可具有动态的行为。在面向对象的程序设计中,对象是构成程序的基本单位,是程序的运行实体。对象可以是任何的具体事物。在VFP中,标签、表格、表单以及所有控件都可看成是应用程序中的对象。对象是应用程序中的一个处理单位。6.2 面向对象的基本概念5 6.2.2 类(class) 类含有某个对象的数据和操作功能,是对一组具有相同属性和方法的对象的抽象,是对象的原型。在类定
4、义代码中可含有对象的属性、事件和方法。 类和对象是抽象和具体的关系。类包含有关对象的特征和行为信息,是对象定义的模板。对象是类的具体化和实例化,所以对象又称为类的实例(Instance)。一个类可以实例化为多个对象,各个对象都有所属类的属性、事件和方法程序,但每个对象的属性值可以不同。类是一个静态的概念,只有实例化的对象才是可运行的实体。6 类具有封装性、继承性和多态性。 封装性(Encapsulation)。封装是指将对象的特性(属性)和行为(方法)包装在一起。 继承性(Inheritance)。类都可以从已有的类中派生而来,派生出的子类继承父类的全部属性和法,可以添加新的方法,也可放弃若干
5、原有的方法。 多态性(Polymorphism)。多态性是指相同的操作可以作用于多种类型的对象上,并获得不同的结果。Visual FoxPro允许用户利用多态性。 76.2.3 类与对象的关系 类和对象关系密切,但并不相同。类包含了有关对象的共同特征和行为信息,它是对象的蓝图和框架。类是对象的抽象描述,对象是类的一个具体实例。例如,电话可以是一个类,而这个类的实例对象,便是某一部具体的电话。 从某种程度上讲,类也是一种对象,例如学生是一类也是一个对象。类决定了对象的特征。对象可以是类的成品,类与对象是应用程序的组装模块。8 6.2.4 属性 对事物性质等进行的描述称为事物的属性。属性是对象的特
6、征,是对象某一方面的行为参数。它描述对象的状态或某一方面的行为功能,说明了对象可以完成的工作,但还没有说明如何去完成任务。状态是对象在其生命周期中某个特定阶段所处的某种境域、所表现的形态,行为是指对象在某种状态下所做的一系列处理、操作、反应。9 6.3 VFP中的类和对象 VFP的对象所具有的属性是由派生该对象的类决定的,而且这些属性既可以在设计时指定,也可以在运行时指定。当用户打开表单或控件的属性窗口,并选择“其它”选项卡时,可能会看到涉及类定义的以下几个属性:BaseClass(基类):VFP中内部定义的类,用户可使用它们创建自定义类,如表单和所有控件都是基类,用户可在此基础上创建新类,增
7、添需要的功能。 Class(类):派生该对象的类名。(3) ParentClass(父类):派生该对象的父类名。仅对自定义类有效,如果类是直接从VFP基类上派生的,则本项为空。 106.3.1 容器类容器类可以包含其它对象,并允许访问这些对象。 这些对象无论是在运行时还是在设计时都可以单独地操作。常用的容器类有:表单(Form)、表单集(FormSet)、列(Coumn)、命令按钮组(CommandButton Group)、容器(Container)、表格(Grid)、选项按钮组(OptionButtonGroup)、页(Page)、页框(PageFrame)、工具栏(TooBar),其中,
8、表单集和页框是不可见类。11 6.3.2 控件类 控件类中不能包含其它对象,只能加入到其它对象中。控件类的封装比容器类更为严密。当引用容器中的控件对象时必须经过容器,其格式是:容器对象.控件对象.属性。例如,在Form1表单中设置标签abc1的Caption属性:Form1.abc1.Caption=姓名12VFP中常用的控件类有:复选框(CheckBox)、组合框(ComboBox)、命令按钮(CommandButton)、编辑框(EditBox)、图像(Image)、标签(abe)、线条(ine)、列表框(IstBox)、选项按钮(OptionButton)、形状(Shape)、微调(Sp
9、inner)、文本框(TextBox)、计数器(Timer)、控件(Contro)、列标题(Header)、OE绑定型控件(OE Bound Contro)、OE容器控件(OE Container Contro)、自定义类(Custom),其中计数器和自定义类是不可见类。136.3.3 容器对象和控件对象 VFP的类有容器类和控件类之分,所以VFP中的对象也分为容器对象和控件对象(有时也称之为非容器对象)。1容器对象容器对象是由容器类创建的对象,它们可以包含其它对象,并且允许用户在设计和运行时访问这些对象。 14容器对象所能包含的对象命令按钮组CommandGroup命令按钮选项按钮组Opti
10、onGroup选项按钮表格Grid表格列页框PageFrame页面页面Page任意控件、容器和自定义对象表单集FormSet表单、工具栏表单Form页框、任意控件、容器或自定义对象表格列Header标头对象以及除表单、表单集、工具栏、计时器和其它列对象以外的任意对象工具栏ToolBar任意控件、页框和容器容器OleControl任意控件表6.1 各种容器类及其所能包含的对象 152控件对象 控件对象也称为非容器对象,即控件对象可以包含在容器对象中,但控件类对象没有“AddObject”(添加对象)的方法程序,因此在控件对象中不能添加其它对象,即控件对象不能作为其它对象的父对象。 控件对象一般作
11、为一个独立的部件出现,提供移动、拖放和单击等操作,用户可执行封装在控件内的方法程序。166.4 事件和方法程序 VFP中的每个对象都是用类定义的。在VFP的“表单控件工具栏”上,控件代表类并不实际存在,直到在表单上放置了控件的对象为止。创建控件也就是在复制控件类,或者说是建立控件类的实例。这个实例就是程序中将引用的对象。176.4.1 VFP常用事件 事件确定控件对外部条件的响应。事件由各个控件识别,再由应用程序处理。例如,命令按钮可以识别鼠标单击事件,但无法响应这个事件,除非提供了所需要的代码,即必须告诉VFP在用户单击特定命令按钮时所进行的操作。每个对象都能够识别和响应系统预先定义好的特定
12、事件。用户不能自定义新的事件。在面向对象的程序设计中,程序的执行取决于当前所发生的事件,并由事件来驱动。什么事件发生了,便有相应的事件处理程序去处理。 事件可由用户或系统激活,多数情况下,事件是通过用户的交互操作产生的。用户可以编写具有一定功能的程序代码,以响应特定的事件。 18事件说明Init当对象创建时激活Destroy当对象从内存中释放时激活Error当类中的事件或方法程序过程中发生错误时激活表6.2 最小事件集 19 表6.3 核心事件表 206.4.2 VFP常用方法程序介绍 方法程序是对象能够执行的一些操作,不同的对象具有不同的操作行为。为了很好地、准确地触发并执行方法程序,配备了
13、控件和事件;同时设置了数据环境以满足用户对使用信息数据范围的选取并构成与其他几个方面的完整配合体系。可以把属性看作是一个对象的性质参数,把事件看作是触发对象响应的指令,把方法程序看作是对象的响应动作,把数据环境看作是对象的生存与运行条件。 方法程序是一段能完成特定操作的程序代码。方法程序既可以与相应的事件相关联,例如,为Cick事件编写的方法程序代码将在Cick事件出现时被执行,也可以独立于事件而单独存在,此类方法程序必须在代码中被显式地调用。例如,命令按钮对象具有SetFocus方法程序,该方法程序的作用是将焦点放置到该按钮上。表6.4给出了VFP中常用方法程序。21常用方法程序用途说明Ad
14、dColumn在表格控件中添加一个列对象AddObject在表单对象中添加一个对象Box在表单对象中画一个矩形Circle在表单对象中画一个圆或椭圆Clear清除控件中的内容Cls清除表单上的图形和文本Draw重画表单对象Hide隐藏表单、表单组或工具Line在表单对象上画一条线Move移动对象Point返回表单上指定点的红蓝绿3种颜色Print在表单上打印一个字符串PrintForm打印当前表单的屏幕内容ReadExpression返回保存在一个属性单中的表达式字符串表6.4常用方法程序22ReadMethod00返回一个方法中的文本Refresh重画表单或控件,并刷新所有数据Release从内存中释放表单或表单组RemoveObject在运行时从容器对象中删除指定的对象ResetDrfault将Time控件复位,使它从零开始计数Saveas把对象保存为.scx文件Savea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 停车场扩建钢结构隔层施工合同
- 员工反馈与沟通渠道
- 物流运输可靠性规范
- 水库清淤治理施工合同
- 建筑门窗施工合同:教育设施建设
- 户外用品质量奖评定流程
- 团队协作升级计件奖罚新实践
- 旧城改造工程合同进度跟踪
- 农业计量管理准则
- 云云云金融服务期协议
- 2024年四川农信招聘笔试参考题库含答案解析
- 用色彩表达情感课件
- 大学食堂原料物资猪肉采购 投标方案
- 光纤电缆安装指南
- 2023北京海淀区高二上学期期末语文试题及答案
- 河南省郑州市中原区2023-2024学年九年级上学期期中数学试卷(含解析)
- 高标准农田蓄水池施工方案
- 铁塔认证考试题库大全-3动环专业部分
- 药学职业生涯人物访谈
- 羟亚胺的Semipinacol重排反应与改进探究
- 国有集团公司中层及员工履职追责问责处理办法模版
评论
0/150
提交评论