第九.十章 VFP面向对象的程序设计(表单设计)
要点:面向对象程序设计的基本概念、表单的控件对象的属性和程序代码设计
1. 面向对象程序设计方法
1面向对象(OOP)程序设计概念:是将数据与过程(方法、事件)封装在对象中,围绕对象进行程序设计.
2对象
1)概念:是数据和操作数据的一组代码(程序)或过程的封装,将封装体看成是一个实体(对象)。VFP 的对象有:窗口(表单)、表格、命令按钮等(两类:容器对象、控件对象)
2)对象的引用:(程序设计中引用的语法规则)
绝对引用:格式:对象名1.对象名2
例:表单名:FORM1,命令按钮名COMMAND1,命令按钮引用:
FORM1. COMMAND1.CAPTION=”确定
●相对引用:This      该对象本身   
            Thisform  该对象本身所在表单
            Parent    该对象本身的直接容器
上例:命令按钮引用:
THISFORM. COMMAND1.CAPTION=”确定
THIS.CAPTION=”确定
THIS.parent. COMMAND2.CAPTION=”退出
说明:一个表单文件含一个表单,表单对象名是表单文件名,MYForm是“MYForm.scx
一个表单文件含多个表单(表单集),表单对象名是表单名(name下的名字)
3
(1) 概念:一组对象的抽象定义,一个类的对象含有某些共同的行为及特性
(2) 类的使用:系统类(基类(控件类、容器类)、基础类、向导类)、用户类(用户设计)
4属性
1)概念:对象特征描述,如:大小、颜、位置等。
2)表单常用属性
属性          说明
Caption      表单的标题
Name          表单对象名
Top          表单顶部到VFP主窗口距离
Height        表单的高
Width        表单的宽
重点:区别CaptionName
3)属性的设计及引用
①在属性窗口中设计(全部、数据、方法程序、布局、其他)
②在程序代码中引用格式:对象名.属性名=值(属性代码)
例:THISFORM.COMMAND1.Caption=”确定
THISFORM.COMMAND1.Visible=.T.
THISFORM.COMMAND1.Height=30
THISFORM.COMMAND1.Width=70
注意:习惯上静态属性用属性窗口,动态属性用事件代码。
5方法
1)概念:使对象作出响应的操作程序代码
2)表单常用方法程序
方法          说明
Line          表单上画线
Hide          隐藏表单
Show          显示表单
Refresh        刷新表单上控件的值
Release        退出表单
(3)调用方法:格式:对象名.方法名(方法代码)
例:释放当前表单:lease
    表单画线:    thisform.linex1,y1,x2,y2
6事件
1)概念:由用户或系统激活的特定动作,如鼠标的单击、双击等。
2VFP常用事件
事件          说明
Click        鼠标单击时发生
DbClick      鼠标双击时
Init          对象的初始化设置时
KeyPress      用户按下并离开键盘时
InterActiveChange 改变控件值时发生
RightClick    鼠标右击时
7)事件驱动编程
1)概念:选择对象的事件,在事件下编写程序代码。用户操作对象(事件发生),事件的过程代码自动执行。
编程方法:●在表单双击对象/选过程中事件/编写代码
          ●属性框(下拉列表)选对象/选过程方法/编写代码
注:时间的代码窗口包括:
1) 属性代码
2) 方法代码
3) 所有的VFP命令代码(九十以前的)
2.表单设计与运行
1)表单的概念:是Windows的窗口,是一个容器对象,包容各种控件、数据环境及相关程序。
2)表单设计步骤
创建表单、设置数据环境、添加控件、设置对象的属性或方法、编写程序代码。
1)表单的创建(项目管理器、文件菜单、程序、向导、CREAT FORM)
①表单向导:文件/新建/表单/向导 (快捷、形式单一)
②表单设计器:文件/新建/表单/新建文件(形式多样、常用)
表单设计器相关组成:(演示)
表单界面、数据环境、表单控件、表单设计工具栏、属性窗口
2)设置数据环境
概念:表单所要操作的数据源(如表随表单一起打开)。
包括:数据库、自由表、视图、关系
方法:表单空白处击右键/数据环境(数据环境空白处和表的快捷菜单)
内容:添加表、浏览表、创建表的关系。
3)设置对象属性
方法:在表单中添加并激活控件对象,属性框出现该控件的相关属性(常用:数据、布局)
3)表单运行及编辑
1)表单运行
●快捷菜单:右键/运行表单
●命令窗口:DO FORM <路径\表单名>
●项目管理器:(文件/打开/项目)文档/选表单名/运行
●可执行文件:双击
2)表单编辑
●菜单:文件/打开/文件类型/表单/选表单名/确定
●项目管理器:(文件/打开/项目)文档/选表单名/修改
●命令窗口:MODI FORM <表单名>
4)表单控件设计
--设计对话功能强大,美观实用的用户界面
设计步骤:
①鼠标单击表单控件框的控件/在表单上画控件
弹出窗口代码编写
②设置控件对象的属性
③双击控件对象/选“过程:”驱动事件/输入程序代码(或属性框双击方法程序中事件)
控件对象:(依顺序)
1)标签:显示信息说明,如字段名称、标题。
常用属性:Caption(文本内容)Fontname(字体)Fontsize(字体大小)
2)文本框:输入/输出数据,如字段值、内存变量值。
常用属性:Fontname(字体)Fontsize(字体大小)ControlSource(数据源)PasswordChar(口令标记)readonly(只读)
3)编辑框:处理长文本,如备注字段,允许换行。
常用属性:Scrollbar(是否有滚动条)MaxLength(允许字符长度,0没有限制)
4)命令按钮/命令按钮组:用Click执行操作命令,如“确定”/“退出”
常用属性:Caption(命令名称)Enabled(是否可用)buttoncount(按钮数目)
例:设计可以上下翻动记录的表单。步骤:
1) 创建表单。
2) 设置数据环境,拖动数据环境中的字段到表单(有学号、姓名等)。
3) 用表单控件设计三个按钮、一个标签(标题)。
4) 编写程序。
5) 运行表单。
1)属性设计
对象      名称      属性       
标签      lb1      caption      学生信息查询系统
标签      lb2      caption      条件:
命令按钮  COM1      caption      显示
命令按钮  COM2      caption      退出
命令按钮  COM3      caption      上一条
命令按钮  COM4      caption      下一条
注:对象名称在“属性框/其他”中设计
2)代码设计
COM2(退出)的Click事件:
lease
COM3(上一条)的 Click事件:
if !bof()
skip -1
fresh()
endif
COM4(下一条)的 Click事件:
if !eof()
skip 1
fresh()
endif
问题:上/下一条省略if !bof()/eof(),情况怎样?
补充:命令按钮常用的信息框函数(messagebox()P203
“退出系统”的CLICK事件代码:
a=messagebox(“你确实要退出系统吗?”,4+16+0,”对话窗口”)  &&返回67
if a=6                                     
release thisform                          &&如果击“是”,释放表单
endif
其中第一行给出三个信息:
1) 该函数弹出一信息窗口。
2) 该窗口用户可操作。(“是”、“否”)
3) 操作(函数返回值)结果给一内存变量变量赋值。(是:a=6,否:a=7
关于“4+16+0”击函数返回值的意义,看P203的表10-1410-1510-1610-17
5)选项按钮组:作单项选择的一组按钮(容器)
常用属性:Caption(命令名称)buttoncount(按钮数目)Value(按钮的状态:1选中,0未选)
例:设计查询表单如下:(选男(或女),显示男(或女)同学)
注意:单选按钮组作为容器,需击右键/编辑后,才能设计属性和程序。
1)属性设计
对象      名称      属性       
标签      lb1      caption      学生信息查询系统
标签      lb2      caption      条件:
单选按钮  option1  caption     
单选按钮  option2  caption     
命令按钮  COM1      caption      显示
命令按钮  COM2      caption      退出
2)代码设计
COM1(显示)的Click事件:
do case
case thisform.optiongroup1.option1.value=1
brow for 性别=""
case thisform.optiongroup1.option2.value=1
brow for 性别=""
endcase
fresh()
COM2(退出)的Click事件:
release thisform
6)复选框:可选一个、多个、全部。
常用属性:Caption(命令名称)Value(按钮的状态:1选中,0未选,2以上或NULL不能用)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。