“新类”对话框“派生于”列表中没有的内容 2012-9-8 兰色字:容器类,其余为控件类
11
基类的最小事件集
事 件 Init 说 当对象创建时激活 明
Destroy 当对象从内存中释放时激活 error 当类中的事件或方法程序运行中发生错误 时激活
2012-9-8
12
基类的最小属性集
属性 Class Baseclass
Classlibrary
说明 该类属于何种类型 该类由何种基类派生而来 (Form,Commandbutton或Custom等) 该类从属于何种类库 对象所基于的类。若该类直接由VFP基类派 生而来,则Parentclass属性值与Baseclass属 性值相同
13
parentclass
2012-9-8
6.2.2 容器类与控件类
? 容器类(Container classes)是包容其他类的基类
? 容器可以包含其它对象
? 容器可以作为所包含的对象的父对象
? 允许访问包含的对象
? 控件类(Control classes)是可以包含在容器类中的 基类
? 控件对象可以包含在容器中 ? 不能作为其它对象的父对象
? 基于类的不同类型,VFP的对象可分为容器对象
和控件对象
2012-9-8 14
容器类
容器类 容器 工具栏 表单集 表单 表格 表格列 页框 页面 命令按钮组 选项按钮组 2012-9-8 能包含的对象 任意控件 任意控件、页框、容器 表单、工具栏 页框、任意控件、容器、自定义对象 表格列 标头以及除表单、表单集、工具栏、计时器和其它 列以外的任意对象 页面 任意控件、容器和自定义对象 命令
按钮 选项按钮
15
6.3
? 分类 ? 绝对引用 ? 相对引用
处理对象
6.3.1 引用对象
? 何时要引用对象 ? 当要设置或取得对象的某个属性的值时(show) ? 当要执行对象的某个方法事件时(show) ? 容器层次体系 ? 容器与容器中的控件是上下层次的关系 ? 一个应用程序的最高层次是 _screen或_VFP,最低 层次是一个非容器类控件或是一个不包含任何控件的 容器类控件
2012-9-8 16
表单集“表单集1”(该对象的Name属性为FormSet1)中包含2个表单“Form1” 和“Form2”;表单“Form1”中包含2个文本框、1个选项按钮组、1个页框;页 框中包含2个选项卡式页面Page1和Page2;页面“Page1”中包含1个表格 “Grid1”;表格中包含2个列控件对象;列控件又包括标头和文本框控件。
2012-9-8 17
层次体系示意图
表 单 集
表 单
容 器
控 件
2012-9-8
18
? 绝对引用
? 从容器的最高层次引用对象,给出对象的绝对地址 ? 例:表单Form1对象:FormSet1.Form1
表格的第一列中的文本框Text1对象: FormSet1.Form1.Pageframe1.page1.column1.Text1
? 相对引用 ? 在容器层次中相对于某个容器层次的引用
? 相对引用通常运用于某个对象的事件处理代码或方
法程序代码中,即在某个容器对象的事件处理代码 或方法程序中对所包容的对象的引用,引用时可以 直接使用其对象名 ? 相对引用时,所涉及到的一些关键字(P125表6-5)
? 例
? 当前活动表单:_SCREEN.ActiveForm ? 当前活动控件:_SCREEN.ActiveForm.ActiveControl
2012-9-8 19
相对引用对象时所用的关键字
关键字 ActiveForm ActivePage ActiveControl PARENT THIS THISFORM THISFORMSET
2012-9-8
含义
当前活动表单 当前活动表单中的活动页面 当前活动表单中具有焦点的控件 该对象的直接容器 该对象 包含该对象的表单 包含该对象的表单集
20
6.3.2 设置对象属性
? 每个对象都有属性,可以对对象设置属性 ? 属性可以在设计时设置也可在运行时设置,但
也有一些属性是只读的。 ? 设计时修改属性在“属性”窗口中进行 ? 程序代码中,用以下语法进行设置 引用对象 . 属性 = 值(show) 例:绝对引用
FormSet1.Form1.Text1.Value=DATE() FormSet1.Form1.Text1.ForeColor=RGB(0,0,0)黑 FormSet1.Form1.Text1.BackColor=RGB(192,192,192) 灰 FormSet1.Form1.Text1.FontName=―黑体”
2012-9-8 21
引用一个对象的多个属性和方法(重要) 如:with formset1.form1.text1(点不能放在此处) .Value=DATE() .ForeColor=RGB(0,0,0)