【vfp精品源码栏目提醒】:网学会员为需要vfp精品源码的朋友们搜集整理了【精品】VFP6 - 其它资料相关资料,希望对各位网友有所帮助!
第六章对象模型与事件模型结构化程序设计 设计方法——自顶向下、功能分解 开发过程通常是从“做什么”到“如何做” 优点:结构性强、便于设计和理解面向对象的程序设计 基于
问题对象的自底向上的功能综合 开发过程是从“用什么做”到“要做什么” 优点: 设计出基本 利用类的继承 简化程序
设计,提高程序代码的可重用性 的类和对象 性更新功能 更接近现实世界,可降低开发和维护的费用 可以和各种模型自然的融合 类和对象 —OOP的程序基本单位基本概念 类Class定义了对象特征以及对象外观和行为的模板, 它刻画了一组具有共同特征的对象。
类是对象的抽象,对象是类的实例 OOP中,程序是由一个或多个类组成,在程序中视需 要创建各个对象(实例)。
类是静态概念,对象是动态概念 对象是基于某种类所创建的实例,包括了数据和过程 应用程序中的对象表单 Form 、表单集 FormSet 、控件 Control 类(Class)基类Base Class:
VFP系统提供的内部定义的类。
(表 单、控件)子类SubClass:引用
VFP基类或其他的子类,建立的新 类。
用户自定义类User-Define Class:与基类相似,由用户 定义,可用于派生子类,但无可视化表示形式类的特点 继承性(inheritance 多态性(polymorphism) 封装性 (encapsulation) 抽象性(abstraction) 对象(Object) 对象是基于某种类所创建的实例。
每个对象都具有属性及与之相关的事件和方法属性Property 定义对象的特征或某一方面的行为。
对象的属性值可在设计阶段或运行阶段修改。
事件Event 是由对象识别的一个动作。
可编写相应的代码,对动作进行响应。
事件可由用户的动作、
程序代码或
系统产生。
对象的事件集合是固定的,用户不能创建新的事件。
方法Method 是对象能够执行的一个操作。
方法是与对象相关联的过程,也称方法程序。
方法可由用户自己创建。
基类和子类
VFP的类基类、子类、用户自定义类
VFP的基类(参见p122) 基类的最小事件集和最小属性集类库.vcx .vct:用于存放子类的库文件
VFP 子类 基类 派生 子类 子类容器类Container classes是包容其他类的基类 容器可以包含其它对象 图表标题 容器可以作为所包含的对象的父对象 允许访问包含的对象
VFP的类控件类Control classes是可以包含在容器类中并有用户派生的基类。
控件对象可以包含在容器中 器 类 控件类 容 Controls 不能作为其它对象的父对象 Containers基于类的不同类型,
VFP的对象可分为容器对象和控件对象 对象的引用何时要引用对象 当要设置或取得对象的某个属性的值时; 当要执行对象的某个方法事件时;容器层次体系 容器与容器中的控件是上下层次的关系; 一个应用程序的最高层次是 _screen或_
VFP, 最低层次是一个非容器类控件或是一个不包 含任何控件的容器类控件; 层次体系示意图表 表 容 控单 单 器 件集 根据对象的层次体系引用对象 绝对引用(全名引用):从表单或表单集开始, 把层次体系中的对象名由大到小用圆点隔开, 直到要引用的控制的某个属性。
FormSet1.Form1 相对引用FormSet1.Form1.PageFrame1.Page1.Column1.Text1 在控制内对自身引用:This 自身所在容器(父对象)的引用: Parent_SCREEN.ActiveForm 控制所在的表单的引用: Thisform_SCREEN.ActiveForm.ActiveControl 控制所在的表单集的引用: Thisformset 活动的表单的引用: Activeform 活动的控制的引用: Activecontrol 设置对象属性1、每个对象都有属性,可对对象设置属性 属性可以在设计时设置也可在运行时设置,但 也有一些属性是只读的。
设计时修改属性在“属性”窗口中进行 程序代码中,用以下语法进行设置 引用对象 . 属性 值 FormSet1.Form1.Text1.ValueDATE FormSet1.Form1.Text1.ForeColorRGB000 FormSet1.Form1.Text1.BackColorRGB192192192 FormSet1.Form1.Text1.FontName“黑体”2、引用一个对象的多个属性和方法如:with formset1.form1.text1 .ValueDATE .ForeColorRGB000 .BackColorRGB192192192 .FontName“黑体” endwith3、引用容器中的多个对象如:With Thisform .txtXh.backcolorrgb12800 .txtXm.backcolorrgb01280 Endwith 调用对象的方法程序方法程序是对象能够执行的一个操作,是和对象相联系的过程。
调用语法:.FormSet1.Form1.showFormSet1.Form1.SetFocus有返回值的方法程序以圆括号结尾可以为对象的方法和事件编写代码,还可在自建的子类中扩展方法集。
响应事件 事件是对对象识别的一个动作,可以编写相 应的代码对此动作进行响应。
用户不能用其他的程序设计方法产生其事件, 但可以调用与这些事件相关的过程。
常用的事件类: 鼠标事件 键盘事件 表单事件 控件焦点事件 数据环境事件 相关事件最小事件集、核心事件(P126-127)容器层次事件和类层次中的事件 容器不处理与所包含的控件相关联的事件 本对象有事件代码则执行本对象的代码,若无事件 代码,则不执行更高层容器同一事件的代码。
例外:选项按钮组与命令按钮组事件激发的顺序 打开“调试器”窗口,“工具”——“事件跟 踪”——“开启事件跟踪” P129 鼠标事件(一)MouseMove事件 当用户在一个对象上移动鼠标时发生PROCEDURE Object.MouseMoveLPARAMETERS nIndex nButton nShift nXCoord nYCoord 或LPARAMETERS nButton nShift nXCoord nYCoordClick事件 程序中包含触发此事件的代码或鼠标单击控制PROCEDURE Object.Click LPARAMETERS nIndex 鼠标事件(二)RightClick事件 当用户在控制上右击鼠标时发生PROCEDURE Control.RightClick LPARAMETERS nIndexDblClick事件 当连续两次点击鼠标左键并释放时发生PROCEDURE Object.DblClick LPARAMETERS nIndex 鼠标事件(三)MouseDown事件 当用户按下一个鼠标键时发生MouseUp事件 当用户释放一个鼠标键时发生DragDrop事件 当完成拖放操作时发生。
DragOver事件 控制拖过目标对象时发生此事件PROCEDURE Object.DragOverLPARAMETERS nIndex oSource nXCoord nYCoord nState 鼠标事件(四)DropDown事件 组合框中,点击下箭头后,
列表即将被下拉时PROCEDURE ComboBox.DropDown LPARAMETERS nIndexScrolled事件 表格控制中,单击水平或垂直滚动条PROCEDURE Grid.Scrolled LPARAMETERS nIndex nDirectionDownClick事件 ——单击控制的下箭头时UpClick事件 ——单击控制的上箭头时 键盘事件KeyPress事件 当用户按下并释放某个键时,发生此事件 PROCEDURE Object.KeyPress LPARAMETERS nIndex nKeyCode nShiftAltCtrl 或 LPARAMETERS nKeyCode nShiftAltCtrl