1、9 面向对象的程序设计一、面向对象的程序设计 OOP(Object Oriented Programming)对象:一种将数据和操作过程结合在一起的数据结构,是现实世界中待处理的客观实体的抽象表达。例:表单(FORM) ,文本框(TEXT BOX)等二、对象(object)和类(class)的含义对象::是反映客观事物属性及行为特征的描述。类:是具有共同属性、共同操作性质的对象的集合。类是对象的抽象描述,对象是类的实例。类是抽象的,对象是具体的。通过类可以产生对象。三、类的特性:继承性、封装性、多态性四、类的分类:基类(29 个) 、子类、用户自定义类 (类库)其中 VFP 中基类又分为:容器
2、类和控件类五、对象的基本要素:属性、事件、方法 (消息)1、属性(PRORERTY):是一组用于描述对象的物理特征的值。如:对象的标题(CAPTION) ,名字(NAME) ,可见性(VISIBLE) ,能用性(ENABLED )等A、常用属性属性 说明 属性 说明Caption 指定对象的标题 Visible 指定对象是可见还是隐藏Name 指定对象的名字 Enabled 指定对象能否使用Value 指定对象当前的取值 Left 对象左边相对于父对象的的位置Passwordchar 指定用作占位的字符(通常用于文本框设置密码显示形式)TOP 对象上边相对于父对象的位置ButtonCount
3、指定命令按钮组(COMMAND GROUP)或选项按钮组(OPTION BUTTON GROUP)中的按钮数目FONTNAME 指定对象文本的字体名B、属性的修改:属性工具中修改,也可以在事件代码中修改。事件代码中修改的方法:(1)绝对引用:指出所在容器类的名字格式: 容器.对象.属性=值例如:Mmand1.caption=显示(2)相对引用:格式: 相对引用.对象.属性=值 相对引用.对象.方法=值参照关键字 参照对象THIS 该对象THISFORM 包含该对象的表单THISFOMSET 包含该对象的表单集Parent 包含该对象的父对象例2:表单上有两个command按钮:command1
4、 和command2command1 中的 click 事件代码: mand2.caption=”退出” 2、事件:对象可以识别和响应的行为和动作。事件是预先定义的动作,由用户或系统激活。当事件发生时,与之相对应的方法程序代码将被执行。3、调用对象的方法: 对象名.方法thisform . releasethisfrom . text1. setfocus9 表单设计表单的基本建立方法。方法一:文件菜单:新建-表单。 (注意:默认目录)方法二:create form 表单名 (注意:默认的扩展名是 scx)方法三:项目中新建表单方法四:表单向导建表单2、基本界面和工具栏(1) 表单文件名。表单
5、的标题(caption)。修改表单文件名。(2) 表单设计器工具栏。(3) 使用表单控件工具栏。了解基本控件。(4) 熟悉属性工具栏和基本操作方法。运行表单:表单 执行表单 或者 工具栏上的“运行”按钮或者 程序运行,选择表单文件或者 DO FORM 表单文件名操作实例:Hello world综上所述, 要修改表单的属性,方法有两种: 方法 1、在编辑表单时,选择中相应的控件,直接修改属性工具栏中的属性。运行表单时立即生效。方法 2、利用事件代码修改:引用.对象名.属性=值 或 引用.容器对象名.对象名.属性=值 当事件发生的时候才执行,这时表单的属性被修改。表单常用控件一、 表单如果涉及表的
6、操作需要首先使用数据环境,然后添加表注意:密切关注“表单设计器”工具栏!二、常用表单及属性、事件和方法(红色代表必须背下来,蓝色代表必须熟悉)涉及字型的属性:FontSize、FontName、ForeColor 、FontBold、FontItalic 等。涉及控件大小调整:位置及大小:top、left、height、width涉及控件获得焦点事件方法:GotFocus 失去焦点: LostFocus涉及控件操作某个表的字段:设置数据环境后设置属性 ControlSource当然组合框和列表框不一样:需要设置的是 RowSource 和 RowSourceType注意:事件和所对应的方程程序
7、的编写使用是在代码窗口中选择过程。三、表单控件.重点控件:表单、标签、文本框、命令按钮、选项按钮组、复选框、列表框。编辑框、组合框、表格、命令按钮组。一般控件:微调按钮、计时器、图像、页框和表单集。重要提示 :每个控件都配有实例,请大家到本文相关目录去调用查看。每个实例(目录)都已经写好了操作步骤(制作要领)供大家学习。 表单(容器):主要属性:caption (引用的时候为: thisform.caption=”) autocenter主要事件和方法:初始化:Init 释放(退出):Release 刷新:Refresh 标签:对象名 Label1 、Label2、Label3 主要属性:标题
8、 Caption、可见 Visible 等, autosize,FontSize、FontName、ForeColor、FontBold、FontItaliceg: hello 文本框:对象名 Text1、Text2 、Text3 主要属性:内容 Value(引用的时候为: thisform.text1.value=”)、数据源controlsource 只读 Readonly、是否为密码 passwordchar 等说明:value 属性默认为字符型eg1 :输入密码eg2:有数据源的文本框文本框学习可参考文本框结合表学生实例 编辑框:对象名 Edit1、Edit2 、Edit3 主要属性:
9、内容 Value、数据源 controlsource、只读 Readonly 等说明:值为字符型 命令按钮:对象名 Command1、Command2、Command3 主要属性:标题 Caption、可用 Enabled 等主要事件和方法: Click 主要函数:MessageBox ( ) 选项按钮组(容器):对象名Optiongroup1、Optiongroup2、Optiongroup3 主要属性:选项个数:ButtonCount、value(0 为不选,1 为选中 Option1,2 为选中 Option2。 。 。 。 ) 、数据源 controlsource。每个选项对象名:Op
10、tion1、option2、Option3 每个选项主要属性:标题 Caption 、值 Value (0 为不选,1 为选中) 复选框:对象名 Check1、Check2、Check3 主要属性:标题 Caption 、值 Value (0 为不选,1 为选中,2 为只读)说明:只读属性也可为 Readonly* 以上全部控件学习请参考 Hello Word 和基本控件实例 * 列表框:对象名为 List1、List2、List3 主要属性:RowSource (数据值的源,主要是表或表中字字段)RowSourceType(类型:一般选别名或者是字段)Value(选中的值)主要事件:Inte
11、ractiveChange 当用户使用鼠标或键盘更改控件的值发生主要函数:增加数据 Additem 删除数据 RemoveItem 组合框:对象名 Combo1、Comble2、Comble3 主要属性:RowSource (数据值的源,主要是表)和 RowSourceType(类型:一般选别名)Value(选中的值)主要事件:InteractiveChange 当用户使用鼠标或键盘更改控件的值发生主要函数:增加数据 Additem 删除数据 RemoveItem以上学习请参考列表框和组合框实例 表格(容器):对象名 Grid1、Grid2、Grid3 基本属性:列数 ColumnCount
12、只读 Readonly列:每一列 Column 列头 Header 列数据 Text可用生成器生成表格以上学习请参考表格实例:涉及一张表和涉及多张表 页框:(容器)对象名:Pageframe1基本属性:页面数 Pagecount 页标题 Caption每页对象名:Page1 、Page2 以上学习请参考页框实例 命令按钮组(容器) ButtomCount(容器)基本属性:按钮个数 ButtomCount每个按钮名字分别为: command1, command2 每个按钮主要属性: Caption 和 enabled (.t.或者 .f.) 以上学习请参考命令按钮组实例补充函数:附:messag
13、ebox( ) 函数 示例 MESSAGEBOX(“信息字串”,数值型对话框类型 ,”对话框标题文本”)数值 1+数值 2+数值 3数值 1 对话框按钮 0 仅有“确定”按钮 1 “确定”和“取消”按钮 2 “放弃” 、 “重试”和“忽略”按钮 3 “是” 、 “否”和“取消”按钮 4 “是” 、 “否”按钮 5 “重试”和“取消”按钮 数值 2 图标 16 “停止”图标 32 问号 48 惊叹号 64 信息 (i) 图标 数值 3 默认按钮 0 第一个按钮 256 第二个按钮 512 第三个按钮 下表列出了 MESSAGEBOX( ) 对应每个按钮的返回值: 对话框按钮返回值 按钮 1 确定 2 取消 3 放弃 4 重试 5 忽略 6 是 7 否 例如: a=messagebox(“你确定要退出系统吗 ?“,4+16+0,“询问框“)if a=6release thisformendifa=6 就说明选的是 49.2 自定义类(自行看书,略P172-P175)1.使用类设计器创建类(了解)2.类库管理(了解)3.在创建表单时使用自定义类(了解)注:可视类库文件扩展名:.vcx创建新类,可以基于任何 VFP 的基类和子类创建新类时,可以对这个新类添加新的属性和方法