
第五章表单设计 教学课时:10课时 教学要求及内容提纲: 学会使用表单向导和表单设计器创建表单 了解和掌握类和对象以及对象的属性、事件和方法等 概念 了解和掌握VFP中各类控件的特点和性能,学会控件 在表单中的基本操作 学会如何在表单中编写事件代码 学会独立编制出完整的表单 教学重点与难点: 如何创建表单 对象的属性、事件和方法 表单控件 教学实施手段:
教学课时:10课时 教学要求及内容提纲: 学会使用表单向导和表单设计器创建表单 了解和掌握类和对象以及对象的属性、事件和方法等 概念 了解和掌握VFP中各类控件的特点和性能,学会控件 在表单中的基本操作 学会如何在表单中编写事件代码 学会独立编制出完整的表单 教学重点与难点: 如何创建表单 对象的属性、事件和方法 表单控件 教学实施手段: 第五章 表单设计

面向对象的概念 l。对象(Object) 客观世界里的任何实体都可以被看作是对象。对 象可以是具体的物,也可以指某些概念 从编程的角度来看,对象是一种将数据和操作 过程结合在一起的数据结构,或者是一种具有属 性(数据)和方法(过程和函数)的集合体。事 实上程序中的对象就是对客观世界中对象的一种 抽象描述 (1)对象属性:属性用来表示对象的状态。 (2)对象方法:对象方法是描述对象行为的过程
面向对象的概念 1。对象(Object) 客观世界里的任何实体都可以被看作是对象。对 象可以是具体的物,也可以指某些概念。 从编程的角度来看,对象是一种将数据和操作 过程结合在一起的数据结构,或者是一种具有属 性(数据)和方法(过程和函数)的集合体。事 实上程序中的对象就是对客观世界中对象的一种 抽象描述 (1)对象属性:属性用来表示对象的状态。 (2)对象方法:对象方法是描述对象行为的过程

2.类 类是对一类相似对象的性质描述,这些对象具 有相同种类的属性以及方法 3.子类与继承 在面向对象的方法里,继承是指在基于现有的类创 建新类时,新类继承了现有类里的方法和属性 此外,可以为新类添加新的方法和属性。我们把 新类称为现有类的子类,而把现有类称为新类的 父类。一个子类的成员一般包括: (1)从其父类继承的属性和方法。 (2)由子类自己定义的属性和方法
2.类 类是对一类相似对象的性质描述,这些对象具 有相同种类的属性以及方法 3.子类与继承 在面向对象的方法里,继承是指在基于现有的类创 建新类时,新类继承了现有类里的方法和属性。 此外,可以为新类添加新的方法和属性。我们把 新类称为现有类的子类,而把现有类称为新类的 父类。 一个子类的成员一般包括: (1)从其父类继承的属性和方法。 (2)由子类自己定义的属性和方法

Visual FoxPro基类 Visual FoxPro基类是系统本身内含的, 并不存放在某个类库中。用户可以基于基类 生成所需要的对象,也可以扩展基类创建自 己的子类 在程序设计中,可以使用CREATEOBJECT函 数来直接生成基于某个类的对象。该函数的 格式如下: CREATEOBJECT([,,,]) 函数基于指定的类生成一个对象,并返回对 象的引用
Visual FoxPro基类 Visual FoxPro基类是系统本身内含的, 并不存放在某个类库中。用户可以基于基类 生成所需要的对象,也可以扩展基类创建自 己的子类 在程序设计中,可以使用CREATEOBJECT函 数来直接生成基于某个类的对象。该函数的 格式如下: CREATEOBJECT([,,,……]) 函数基于指定的类生成一个对象,并返回对 象的引用

Visual Foxpro基类列表 类名 含义 类名 含义 ActiveDoc 活动文档 Label 标签 CheckBox 复选框 Line 线条 Column (表格)列 Listbox 列表框 ComboBox 组合框 Olecontrol OLE容器控件 CommandButton 命令按钮 Oleboundcontrol OLE绑定控件 CommandGroup 命令按钮组 OptionButton 选项按钮 Container 容器 Optiongroup 选项按钮组 Contorl 控件 Page 页 Custom 定制 PageFrame 页框 EditBox 编辑框 ProjectHook 项目挂钩 Form 表单 Separator 分隔符 FormSet 表单集 Shape 图形 Grid 表格 Spinner 微调控件 Header (列)标头 TextBox 文本框 HyperLink 超级链接 Timer 定时器 Image 图象 ToolBar 工具栏
Visual Foxpro基类 列表 类名 含义 类名 含义 ActiveDoc 活动文档 Label 标签 CheckBox 复选框 Line 线条 Column (表格)列 Listbox 列表框 ComboBox 组合框 Olecontrol OLE容器控件 CommandButton 命令按钮 Oleboundcontrol OLE绑定控件 CommandGroup 命令按钮组 OptionButton 选项按钮 Container 容器 Optiongroup 选项按钮组 Contorl 控件 Page 页 Custom 定制 PageFrame 页框 EditBox 编辑框 ProjectHook 项目挂钩 Form 表单 Separator 分隔符 FormSet 表单集 Shape 图形 Grid 表格 Spinner 微调控件 Header (列)标头 TextBox 文本框 HyperLink 超级链接 Timer 定时器 Image 图象 ToolBar 工具栏

对象属性访问以及对象方法调用的基本格式如下: . .[(参数列表)] 【例5-1】基于Visual FoxPro的FORM类生成一个对象,然 后访问该对象的一些属性和方法。 Oform=CREATEOBJECT ("Form") &生成一个空白表单 Oform.show &&显示表单 Oform.caption=”演示” &&修改表单的标题 ?”这是一个生成对象的演示程序” &&在表单上输出字 符串 oform.release
对象属性访问以及对象方法调用的基本格式如下: . .[(参数列表)] 【例5-1】基于Visual FoxPro的FORM类生成一个对象,然 后访问该对象的一些属性和方法。 Oform=CREATEOBJECT("Form") &生成一个空白表单 Oform.show &&显示表单 Oform.caption=”演示” &&修改表单的标题 ?”这是一个生成对象的演示程序” &&在表单上输出字 符串 Oform.release

5.2.2 容器与控件 Visual FoxPro中的类一般可分为两种类型:容器类 和控件类。相应地,可分别生成容器(对象)和控件(对 象) 容器可以被认为是一种特殊的控件,它能包容其他的控件 或容器 控件是一个可以以图形化的方式显示出来,并能与用户进行 交互的对象,控件类不能包含其它对象 (1)绝对引用:从最高容器开始逐层向下直到某个对象为 止的引用称为绝对引用 (2)相对引用:从正在为编写事件代码的对象出发,通过 逐层向高一层或低一层直到另一对象的引用称为相对引用 使用相对引用常用到表7-2所列属性或关键字
5.2.2 容器与控件 Visual FoxPro 中的类一般可分为两种类型:容器类 和控件类。相应地,可分别生成容器(对象)和控件(对 象)。 容器可以被认为是一种特殊的控件,它能包容其他的控件 或容器 控件是一个可以以图形化的方式显示出来,并能与用户进行 交互的对象,控件类不能包含其它对象 (1)绝对引用:从最高容器开始逐层向下直到某个对象为 止的引用称为绝对引用 (2)相对引用:从正在为编写事件代码的对象出发,通过 逐层向高一层或低一层直到另一对象的引用称为相对引用 使用相对引用常用到表7-2所列属性或关键字

【例】如果Form1中有一个命令按钮组commandgroup1,该命令按钮组 有两个命令按钮:command1和command2,label1是表单form1上 的一个标签控件。 如果要在命令按钮command1的事件(如单击事件)代码中修改该按钮的 标题可用下列命令: this.caption=”确定” 如果要在命令按钮command1的事件代码中修改命令按钮command2的标 题可用下列命令: thisform.Commandgroup1.command2.caption="" 或者 this.parent.command2.caption="取消" 但不能写成下列命令: thisform.command2.caption="取消" 如果要在命令按钮command1的事件代码中修改表单的标题可用下列命令: This.Parent.parent.Caption=”测试窗口” 或者 thisform.caption=”测试窗▣
【例】如果Form1中有一个命令按钮组commandgroup1,该命令按钮组 有两个命令按钮:command1 和command2,label1是表单form1上 的一个标签控件。 如果要在命令按钮command1的事件(如单击事件)代码中修改该按钮的 标题可用下列命令: this.caption=”确定” 如果要在命令按钮command1的事件代码中修改命令按钮command2的标 题可用下列命令: thisform.Commandgroup1.command2.caption="取消" 或者 this.parent.command2.caption="取消" 但不能写成下列命令: thisform.command2. caption="取消" 如果要在命令按钮command1的事件代码中修改表单的标题可用下列命令: This.Parent.parent.Caption=”测试窗口” 或者 thisform.caption=”测试窗口

表5-2 属性或关键字 引用 Parent 当前对象的直接容 器对象 This 当前对象 ThisForm 当前对象所在的表 单 ThisFormSet 当前对象所在的表 单集
表5-2 属性或关键字 引用 Parent 当前对象的直接容 器对象 This 当前对象 ThisForm 当前对象所在的表 单 ThisFormSet 当前对象所在的表 单集

5.2.3 事件 事件是一种由系统预先定义而由用户或 系统发出的动作。事件作用于对象,对象识 别事件并作出相应反应 与方法集可以无限扩展不同,事件集是固 定的,用户不能定义新的事件
5.2.3 事件 事件是一种由系统预先定义而由用户或 系统发出的动作。事件作用于对象,对象识 别事件并作出相应反应 与方法集可以无限扩展不同,事件集是固 定的,用户不能定义新的事件