第八章的内容

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

下页
二、容器与控件
Visual FoxPro 6.0的基类共分为两个大类:容器类 和非容器类。 1.容器类 容器类可以包含其他对象,并且允许访问这些对象。 表8-1列出了每种容器类所能包含的对象。
9
退出
表8-1
容器 命令按钮组 容器 自定义 命令按钮 任意控件
容器类所能包含的对象
包含的对象
目录
任意控件、页框、容器和自定义对象 表单、工具栏 页框、任意控件、容器或自定义对象 表头和除表单集、表单、工具栏、计时器和其它列以外的任一对象 表格列 选项按钮 页面 任意控件、容器和自定义对象 文件、服务程序 任意控件、页框和容器
4
6.类(Class)
目录
“类”是具有相同属性特征和行为规则的多个“对象” 的一种统一描述。 “类”是一个数据模式和若干个程序 过程经封装而形成的一个整体,它是对现实世界的一种 模拟与抽象,而“对象”则是“类”的一个具体实例。
上页
7.子类与继承
在面向对象的方法里,继承是指在基于现有的类创 建新类时,新类继承了现有类里的方法和属性。此外, 可以为新类添加新的方法和属性。我们把新类称为现有 类的子类,而把现有类称为新类的父类。 一个子类的 成员一般包括: (1)从其父类继承的属性和方法。 (2)由子类自己定义的属性和方法。
上页
Container Contorl
下页
Custom EditBox
退出
Form FormSet FormSet Grid Header HyperLink
Image
ToolBar
7
二、面向对象程序设计的基本特征
1.封装性
目录
对象的封装性,就是指将对象的方法程序和属性代 码包装在一起。封装是借助类来实现的。
15
二、Visual FoxPro 6.0中的事件与方法
1.Visual FoxPro 6.0中的事件
目录
上页
下页
退出
在面向对象程序设计中,“事件”是对象触发的行 为描述,“事件”是预先定义的动作,由用户或者系统 激活。一个事件有一个事件名,一个事件与一个事件响 应程序(方法程序)相关联,当作用在一个对象上的事 件发生时,与这个事件相关联的程序就获得一次运行。 每种对象所能识别的事件是固定的,开发者只能为 指定的事件指定响应程序,不能为对象添加新的事件, 对象的事件只能从其父类中继承。 表8-4中列出了Visual FoxPro 6.0核心事件集。
目录
DblClick RightClick GotFocus
上页
LostFocus KeyPress MouseDown MouseMove
下页
退出
MouseUp Valid
When
17
2.对象对事件的反应
当作用在对象上的一个事件发生时,若没有与之相 关的代码,则不会发生任何操作。开发者只需对少数几 个要用到的事件设计响应程序。 事件的响应程序一般是一个过程,用事件的名称来 命名。系统对事件的响应有先后顺序 。
退出
2.属性(Property)
所谓属性,就是对象的特性。在面向对象程序设计 中,每个对象都具有自己的属性。
3
3.事件(Event)
“事件”是“对象”触发的行为描述,“事件”是预先 定义的动作,由用户或者系统激活。常见的“事件”往往 是一些鼠标动作,如“单击”、“双击”、“拖放”或修 改文本框对象的数据等。
2.继承性
从一种现有的、普遍的类派生出的一种新的、具体 的类型的方法。现有的、普遍的的类叫做父类,也称基 类。新的、具体的类被称作子类,也被称作派生类。子 类继承父类的属性或方法。一个子类可以拥有其父类的 全部功能,并可在此基础上,添加其他功能。
上页
下页
退出
3.多态性
所谓多态性实际上就是在运行时方法与对象的动态 绑定。多态性使得用户可以将所定义的方法应用于多个 对象,并使得程序更加容易扩充。
16
表8-2 Visual FoxPro 6.0核心事件集
事件 Init Destroy Click 创建对象 从内存中释放对象 用户使用鼠标主按钮单击对象 用户使用鼠标主按钮双击对象 用户使用鼠标辅按钮单击对象 对象获得焦点,由用户动作引起, 如按 Tab 键或单击鼠标主按钮 ,或者在代码中使用 SetFocus 方法程序 对象失去焦点,由用户动作引起, 如按 Tab 键或单击鼠标主按钮, 或者在代码中使用 SetFocus 方法程序使焦点移到新的对象上. 用户按下或释放键 当鼠标指针停在一个对象上时,用户按下鼠标按钮 用户在对象上移动鼠标 当鼠标指针停在一个对象上时,用户释放鼠标按钮 事后验证事件,当对象失去焦点前如果验证表达式的值为假 (.F.),则 焦点离不开该对象 事前验证事件,当对象获得焦点前,如果验证表达式的值为假(.F.),则 该对象不能获得焦点 事件被激发后的动作
上页
表单集 表单 表格列
下页
表格 选项按钮组
退出
页框 页面 项目 工具栏
10
2.控件类
控件类的封装比容器类更为严密,但也因此损失了 一些灵活性,控件类中不能包含其他类,最典型的就是 命令按钮。
目录
3.容器中各对象的引用
在进行容器类“子类”或“对象”的设计时,往往 要引用容器中某一个特定对象,这就要掌握面向对象的 标识方法。 (1)容器类中对象的层次 容器中的对象仍然可以是一个容器,一般把一个 “对象”的直接容器称为“父容器”,不能将一个对象 的间接容器错误地视为“父容器”。图8-1表示了可能 的一种容器类嵌套的状况。
目录
4.方法(Method)
方法是与对象相关的过程,是指对象为完成一定功能 而编写的一段代码。当作用在对象上的某一个设定“事件” 发生时,与该事件相联系的“方法程序”(当然假设对象 的设计者已经设计了该程序并与对象一起封装)就运行并 完成该程序的功能。
上页
下页
退出
5.事件代码与方法代码
事件代码与方法代码都是定义在某个对象中的一个程 序过程,一个对象包含的事件代码是一定的,不能增加, 而一个对象中所包含的方法代码是可以任意增加的。
5
下页
退出
8. Visual FoxPro基类
目录
上页
下页
退出
Visual FoxPro基类是系统本身内含的,并不 存放在某个类库中。用户可以基于基类生成所需 要的对象,也可以扩展基类创建自己的子类 在程序设计中,可以使用CREATEOBJECT函数 来直接生成基于某个类的对象。该函数的格式如 下: CREATEOBJECT(< 类名 >[, < 参数 1>, < 参数 2>,…]) 函数基于指定的类生成一个对象,并返回对象 的引用。
本章目录
目录
第一节 第二节 第三节 第四节
面向对象的概念 Visual FoxPro 6.0中的类与对象 类与对象的程序设计方法 类和对象可视化设计方法
上页
下页
退出
1
第一节 面向对象的概念
目录
一、面向对象的概念
在面向对象的程序设计(Object-Oriented Programming ) 中 , 对象 (Object) 是组成程序的构件,就好像在面向过程 的结构化程序设计方法中的子程序和函数一样。 在面向对象的程序设计方法中,程序设计人员不是完 全按过程对求解问题进行分解,而是按照面向对象的观 点来描述问题、分解问题,最后选择一种支持面向对象 方法的程序语言来解决问题。
代词 This Parent 表示对象本身 表示对象的“父容器” 表示对象所在的表单 表示对象所在表单所属表单集 意义
下页
退出
ThisForm ThisFormset
说明:这些代词只能在方法代码或事件代码中使用。
13
目录
上页
下页
【例8-1】基于Visual FoxPro的FORM类生成一个对象,然 后访问该对象的一些属性和方法。 Oform=CREATEOBJECT("Form") &&生成一个空白表单 Oform.show &&显示表单 Oform.caption=”演示” &&修改表单的标题 ?“这是一个生成对象的演示程序” &&在表单上输出字符 串 Oform.release
退出
【例8-2】如果Form1中有一个命令按钮组commandgroup1, 该命令按钮组有两个命令按钮:command1 和command2, label1是表单form1上的一个标签控件。
14
目录
上页
下页
退出
如果要在命令按钮 command1 的事件(如单击事 件)代码中修改该按钮的标题可用下列命令: this.caption=”确定” 如果要在命令按钮 command1 的事件代码中修改命令 按钮command2的标题可用下列命令: mand2.caption= "取消" 或者 mand2.caption="取消" 但不能写成下列命令: mand2.caption="取消" 如果要在命令按钮 command1 的事件代码中修改表单 的标题可用下列命令: This.Parent.parent.Caption=”测试窗口” 或者 thisform.caption=”测试窗口”
目录
上页
3.方法程序的层次
下页 退出
为对象编写事件代码时,注意两条基本原则: (1)容器不处理与所包含的对象相关联的事件。 例如:一个命令按钮位于表单上,当用户单击命令按 钮时,只会触发命令按钮的Click事件,不会触发表 单的Click事件。
18
(2)若没有与某对象相关联的事件代码,则Visual FoxPro在该对象所在的类的层次结构中逐层向上检查 是否有与此事件相关联的代码。若找到则执行此代码。
目录
4.事件驱动模型
(1)事件是面向对象方法中驱动程序的引擎。 (2)事件的触发与停止。 事件的触发分为用户操作触发和在程序运行过程 中触发两种方式。典型的用户操作触发事件有用户单 击鼠标时触发Click事件。程序运行过程中触发事件 表示在程序运行过程中自动触发,例如某对象的Iint 事件,是在对象创建时程序自动触发。通常让程序允 许事件触发使用READ EVENTS命令。如果不允许事件 触发可以使用CLEAR EVENTS命令。
9. Visual FoxPro基类列表
lumn ComboBox
含义 活动文档
类名 Label Line Listbox Olecontrol Oleboundcontrol OptionButton Optiongroup Page PageFrame ProjectHook Separator Shape Spinner TextBox Timer
上页
下页
退出
2
1.对象(Object)
目录
上页
下页
客观世界里的任何实体都可以被看作是对象。对象 可以是具体的物,也可以指某些概念。 从编程的角度来看,对象是一种将数据和操作过程 结合在一起的数据结构,或者是一种具有属性(数据) 和方法(过程和函数)的集合体。事实上程序中的对象 就是对客观世界中对象的一种抽象描述。 在面向对象程序设计中,“对象”是对现实世界中 实体的一种模拟工具。如命令按钮、文本框、菜单、工 具栏等。
11
上页
下页
退出
目录
上页
下页
图8-1 容器类的嵌套
退出
(2)对象使用局域名 每个对象都有一个名字,在给对象命名时,只要保 证同一个“父容器”下的各个对象不重名,即对象使用 的是局域名,因此不能单独使用对象名来引用对象,对 象引用的一般格式是: 12
目录
上页
Object1.Object2.… Object1,Object2 是对象的名字,其中左边 Object1 是右边 Object2 的“父容器”,这种格式所表示的是最 后一个对象的名字,中间用小园点(.)分隔。 如图8-1中列容器中的控件名可以表示为: Formset.Form.PageFrame.Page.Grid.Column.Cmd1 (3)几个代词的用法
8
第二节 Visual FoxPro 6.0中的类与对象
一、Visual FoxPro 6.0的类
目录
上页
各种窗口、菜单栏、单选按钮、复选框等在面向 对象的设计中都称之“对象”。Visual FoxPro 6.0对这 些常用的对象提供了丰富的基本类(基类)供用户直接 使用。根据实际需要对它们进行相应的改造以形成“子 类”或者直接形成“对象”,以提高开发者的工作效率。
含义 标签
复选框
(表格)列 组合框 命令按钮 命令按钮组 容器 控件 定制 编辑框 表单 表单集 表格 (列)标头 超级链接 图象
线条
列表框 OLE容器控件 OLE绑定控件 选项按钮 选项按钮组 页 页框 项目挂钩 分隔符 图形 微调控件 文本框 定时器 工具栏
目录
CommandButton CommandGroup
相关文档
最新文档