第7章对象模型和事件模型

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第7章对象模型和事件模型目录上一页下一页退出本章要点7.1面向对象的程序设计概述7.2基类7.3处理对象7.4事件7.5方法目录上一页下一页退出7.1面向对象的程序设计概述程序设计的方法:结构化程序设计SP(过去)面向对象的程序设计OOP(现在)采用面向对象的程序设计方法设计的程序的基本单位:类、对象目录上一页下一页退出7.1.1类和对象1.类(Class)——一组具有相同的结构、操作,并遵守相同规则的对象。2.对象(Object)——客观世界里的事物。可以是具体的事物,也可以指某些概念。从编程的角度来看,对象——一种具有属性(数据)和方法(过程和函数)的集合体。事实上,程序中的对象就是对客观世界中对象的一种抽象描述。目录上一页下一页退出3.类与对象的关系类是对象的抽象,对象是类的实例。类是静态概念,对象是动态概念。【举例】类是汽车,对象是小汽车,或是卡车,或是公共汽车。目录上一页下一页退出4.类的特点(1)继承性——子类延用父类的特征。子类——以其他类为起点所建立的新类。父类——子类所基于的类。【举例】父类:Animal(包括属性NumOfEyes和NumOfLegs,操作Eat和Sleep)子类:Lion类和Bird类,都有Animal类的特征(即属性NumOfEyes和NumOfLegs,操作Eat和Sleep)目录上一页下一页退出(2)多态性——一些关联的类包含同名的方法程序,但方法程序的内容可以不同。方法程序——属于每个类自己的一组代码。每个类会根据自己的数据进行一定的操作。【举例】Lion类和Bird类,都包含同名的方法程序Sleep,但Lion和Bird的睡觉方式不同。Lion躺下睡,Bird站着睡。目录上一页下一页退出(3)封装性——使对象的内部复杂性与应用程序的其他部分隔离开来。【举例】汽车,只要加油,就可以行驶,而其间的步骤都被隐藏了。目录上一页下一页退出5.对象的属性、事件、方法(1)属性——对象的特征或某一方面的行为。对象的某些属性能被设置,某些属性不能被设置。(2)事件——对象识别的一个动作。对对象行为特征的描述。事件集合是固定的,用户不能创建新的事件。(3)方法(方法程序)——对象能够执行的一个操作,描述行为实现的过程。方法必须在对象内的事件中调用。用户可以创建新的属性和方法。目录上一页下一页退出7.2基类基类——VisualFoxPro系统提供的类,用户可以基于基类生成所需要的对象,也可以扩展基类创建自己的类。P149表6-1VFP的基类表6-2基类的最小事件集表6-3基类的最小属性集基类分为:容器类,控件类。目录上一页下一页退出基类的最小事件集事件说明Init当对象创建时激活Destory当对象从内存中释放时激活Error当类中的事件或方法程序中发生错误时激活基类的最小属性集属性说明Class该类属于何种类型BaseClass该类由何种基类派生而来ClassLibrary该类从属于哪种类库ParentClass对象所基于的类。目录上一页下一页退出VFP基类的中英文对照表类名含义Container容器Control控件Formset表单集Form表单ToolBar工具栏Custom自定义|定制CommandGroup命令按钮组CommandButton命令按钮目录上一页下一页退出类名含义EditBox编辑框TextBox文本框Spinner微调框Grid表格Header(列)标头*Column列*PageFrame页框Page页面*目录上一页下一页退出类名含义ListBox列表框ComboBox组合框CheckBox复选框OptionGruop选项按钮组OptionButton选项按钮*Timer计时器OleBoundControlOLE绑定型控件OleControlOLE容器控件目录上一页下一页退出类名含义Lable标签Image图像Shape形状Line线条Separator分隔符*ActiveDoc活动文档HyperLink超级链接ProjectHook项目挂钩目录上一页下一页退出注意:*表示该类是容器类的集成部分,在类设计器中不能基于它们创建子类。P149表6-1补充3个类:活动文档、超级链接、项目挂钩。目录上一页下一页退出7.2.1容器类与控件类容器类——包容其他类的基类。P149-150表6-4VFP的容器类控件类——包含在容器类中的基类。控件类不能包含其它对象。P149表6-1VFP的基类中的剩余类相应地,VFP中的对象可分为容器(对象)和控件(对象)。目录上一页下一页退出容器类–表单集(Formset)–表单(Form)–容器(Container)–页框(PageFrame)–页面*(Page)–表格(Grid)–表格列*(Column)–命令按钮组(CommandGroup)–选项按钮组(OptionGroup)–工具栏(ToolBar)目录上一页下一页退出7.3处理对象7.3.1引用对象1.绝对引用——从容器的最高层次引用对象。【举例】P150图6-1目录上一页下一页退出FormSetControlControlOptionGroup⊙Option1〇Option2FormPageFrame(页框)PageGrid(表格)Column(列)Control图7-3容器类中嵌套的VisualFoxPro对象VFP中的控件是可以嵌套的。如图7-3所示的嵌套目录上一页下一页退出表单集FormSet1中的表单Form1,其上的页框中第一页,该页上的表格的第一列中的文本框Text1对象的绝对引用:FormSet1.Form1.Pageframe1.Page1.Grid1.Column1.Text1目录上一页下一页退出2.相对引用——相对于某个容器层次的引用对象。【举例】P150图6-1表单集FormSet1中的表单Form1,其上的页框中第一页,该页上的表格的第一列中的文本框Text1对象的相对引用(使用引用的地方——表单Form1):thisform.Pageframe1.Page1.Grid1.Column1.Text1目录上一页下一页退出相对引用所用的关键字Parent:当前对象的直接容器。This:当前对象。ThisForm:当前对象所在的表单。ThisFormSet:当前对象所在的表单集。ActiveForm:当前活动表单。ActivePage:页框中活动的页面。ActiveControl:当前表单中有焦点的控件。ActiveColumn:当前表格中包含活动单元格的列。系统变量_SCREEN表示屏幕对象。目录上一页下一页退出7.3.2设置对象属性设置对象属性的语法格式:对象引用.对象属性=值【举例】P151利用WITH…ENDWITH语句简化对同一对象的多个属性的设置。【举例】P152目录上一页下一页退出7.3.3调用对象的方法程序调用对象方法程序的语法格式:对象引用.方法程序【举例】P152目录上一页下一页退出7.3.4对象对事件的响应当对象的事件发生时,该事件的程序代码将被执行。事件没有相关的程序代码,则事件发生时不发生任何操作。【举例】新建一个表单,在表单中添加一个控件“命令按钮”。对命令按钮的Click事件,添加程序代码Quit。当表单运行后,单击命令按钮,则会退出VFP系统。目录上一页下一页退出7.4事件事件——对象识别的一个动作,由系统预先定义。7.4.1核心事件P153表6-6VFP的核心事件这些事件适用于大多数的对象。目录上一页下一页退出7.4.2事件激发的顺序有些事件的激发顺序是固定的,有些事件是独立发生的。主要事件触发顺序:(1)装载阶段(Load事件)表单集Load表单Load(2)对象生成阶段(Init事件)由内到外触发:各控件Init表单Init表单集Init目录上一页下一页退出其中对象焦点发生变化的相关事件的触发顺序为:When在控件接收焦点之前发生GotFocus当对象接收到焦点时发生Valid在控件失去焦点之前发生LostFocus当对象失去焦点时发生目录上一页下一页退出(4)对象释放阶段(Destroy事件)由外到内触发:表单集Destroy表单Destroy各控件Destroy(5)卸载阶段(UnLoad事件)表单UnLoad表单集UnLoad目录上一页下一页退出7.4.4事件驱动和事件循环事件驱动——程序的执行是由某个事件的发生而引起的。面向对象的程序设计方法设计的程序,程序的执行是由事件驱动的。设计VFP应用程序,必须创建事件循环。READEVENTS命令建立事件循环.通常出现在应用程序的主程序中或主菜单的清理代码中。CLEAREVENTS命令终止事件循环说明:中止事件循环后,继续去执行READEVENTS命令下面的那一行命令代码。目录上一页下一页退出7.5方法AddItem方法:在组合框或列表框中添加一个新列表项。Hide方法:隐藏表单、表单集或工具栏。Refresh方法:重画表单或控件,并刷新所有值。Release方法:从内存中释放表单集或表单。RemoveItem方法:从组合框或列表框中移去一列表项。SetAll方法:为容器对象中的所有控件或某类控件指定一个属性设置。SetFocus方法:为一个控件指定焦点。Show方法:显示一个表单,使表单成为活动表单。

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功