青岛理工大学(临沂)2011-11-191第七章表单设计基础青岛理工大学(临沂)2011-11-192面向对象的程序设计OOP(ObjectOrientedProgramming)对象:逻辑模型属性:特性描述方法:特殊功能事件:识别动作青岛理工大学(临沂)2011-11-193例:面向对象与表单编程初体验如下图所示表单,要求任意输入两个数后,单击命令按钮算出相应数值。青岛理工大学(临沂)2011-11-194事件代码“乘积按钮代码:a=val(thisform.text1.value)b=val(thisform.text2.value)thisform.text3.value=round(a*b,1)“求和”按钮代码:a=val(thisform.text1.value)b=val(thisform.text2.value)thisform.text3.value=round(a+b,1)退出命令按钮的代码:thisform.release青岛理工大学(临沂)2011-11-195表单设计的基本步骤1、设计用户界面:放置控件、调整属性2、编写对象响应事件的代码4、执行表单3、保存表单青岛理工大学(临沂)2011-11-196命令方式:MODIFYFORM新表单文件名1.表单设计器的打开和修改7.2表单设计器7.2.1表单设计器的基本操作修改已有表单:文件菜单中打开或用命令:MODIFYFORM表单文件名界面方式:新建菜单下新建表单、在项目管理器中新建表单;青岛理工大学(临沂)2011-11-197信息说明栏属性列表表单窗口表单设计器窗口属性窗口对象组合框选项卡属性设置框2.认识界面7.2.1表单设计器的基本操作青岛理工大学(临沂)2011-11-198表单设计完成保存为扩展名为.SCX的表单文件和扩展名为.SCT的表单备注文件(1)“文件”菜单“保存”命令(2)Ctrl+W(3)单击表单设计器关闭按钮。3.表单的保存(1)“程序”菜单“执行”命令或工具栏中!(2)DOFORM表单文件名4.表单的执行7.2.1表单设计器的基本操作青岛理工大学(临沂)2011-11-199在表单上创建控件指定控件的前景和背景色用于对齐、放置控件以及调整控件的大小5.表单设计器可用的工具栏7.2.1表单设计器的基本操作青岛理工大学(临沂)2011-11-1910青岛理工大学(临沂)2011-11-19117.2.2在表单上设置控件打开表单设计器后,单击表单控件工具栏中某一控件按钮,然后单击表单窗口内某处,该处就产生一个所选控件[例]创建一个文本框(1)打开表单设计器命令:MODIFORMSTQ(2)创建文本框:单击表单控件工具栏中的文本框按钮,然后单击Form1表单窗口内某处,该处就产生一个文本框控件,其内显示Text1青岛理工大学(临沂)2011-11-19127.3面向对象的程序设计方法OOP(Object-OrientedProgramming)面向对象的程序设计主要考虑如何创建对象,并利用对象来简化程序设计。一.对象现实世界的任何事物均可抽象为对象,对象具有属性、事件和方法。VFP中,对象可分为控件和容器两种:(1)控件:表单上显示数据和执行操作的基本对象如文本框、命令按钮。(2)容器:可容纳其它对象的对象,如表单、表格等。7.3.1基本概念青岛理工大学(临沂)2011-11-1913二.属性(1)对象的属性对象的属性用来表示对象的特征。例:命令按钮----位置、大小、颜色、按钮上显示文字或图形等。(2)对象的属性窗口表单设计器打开后,“显示”菜单“属性”命令,或表单的“快捷菜单”的“属性”命令,出现属性窗口。7.3.1基本概念青岛理工大学(临沂)2011-11-1914对象组合框:包含当前表单、表单集及全部控件的列表选项卡属性设置框属性列表框属性说明信息确认对属性值的修改取消属性值的修改,恢复原值打开表达式生成器属性名属性值青岛理工大学(临沂)2011-11-1915常用属性说明属性说明应用于Caption指定对象的标题(显示时标识对象的文本)表单、标签、命令按钮等Name指定对象的名字(有默认值,用于在代码中引用对象)任何对象Value指定对象的当前状态(取值)文本框,列表框等ForeColor指定对象的前景(文本和图形)颜色表单,标签、文本框、命令按钮等BackColor指定对象的背景颜色表单、标签、文本框、列表框等BackStyle指定对象的背景是否透明(透明则背景着色无效)标签、图象等AlwaysOnTop是否处于其他表单之上表单BorderStyle指定边框样式为单线、无边框等表单、标签、文本框等。青岛理工大学(临沂)2011-11-1916常用属性说明(续)属性说明应用于ControlSource指定对象的数据源任何对象ScaleMode指坐标单位(3—象素,0—当前字符的平均高度和宽度为单位)表单Closable标题栏中的“关闭”按钮是否有效表单Controlbox是否取消标题栏所有按钮表单,工具栏MaxBotton标题栏是否有“最大化”按钮表单MinBotton标题栏是否有“最小化”按钮表单Movable运行时表单是否可以移动表单AutoCenter指定是否在VFP主窗口内自动居中表单Visible设置对象是否可见任何对象Enabled设置对象是否可用任何对象青岛理工大学(临沂)2011-11-1917三.事件(Event)事件是由用户或系统触发的一个特定的操作,一个事件对应一个程序,称为事件过程。7.3.1基本概念(1)事件驱动工作方式事件一旦被触发,系统马上去执行与该事件对应的过程。事件过程执行完毕,系统又处于等待某事件发生的状态。事件触发方式:由用户触发、系统触发或代码触发。设定的时间间隔单击命令按钮用代码调用青岛理工大学(临沂)2011-11-1918Click单击鼠标左键时Dbclick双击鼠标左键时RightClick单击鼠标右键时InteractiveChange点击列表或组合框中的一项时Getfocus对象得到焦点时,对象被选定,它就获得了焦点。焦点可以是光标、虚线框等Keypress按下并释放某键盘键时Mousedown按下鼠标键时Mouseup释放鼠标键时Activate对象激活时Init当创建一个对象时发生该事件Load将对象载入内存。创建表单时,在该事件的代码中可表单中控件进行初始化Unload释放对象时VFP部分常见事件表青岛理工大学(临沂)2011-11-1919打开对象代码编辑窗口的3种方法:(1)双击该对象(2)该对象的“快捷菜单”→“代码”(3)“显示”→“代码”输入代码区重新选定对象:组合框2.为事件编写代码重新选定事件(或方法程序):组合框7.3.1基本概念青岛理工大学(临沂)2011-11-19207.3面向对象的程序设计方法方法程序是为对象内定的通用程序,方法程序过程代码由VFP定义,对用户是不可见的。调用其能使对象执行一个操作。例如:1)Release方法程序格式:thisform.release功能:释放表单,一般用于按钮控件(例如:退出)的鼠标点击事件2)Refresh方法程序格式:[thisform].boject.Refresh功能:刷新表单或控件的值。四.方法程序青岛理工大学(临沂)2011-11-1921一般来说,用控件的名称来表示对象,例如:form1,text1,command2。也可以用“this”来表示当前对象。例如:THISFORM--表示当前表单;THIS--表示当前对象用.分割对象和属性、事件和方法例:text1.val;form1.captiomcommand1.click;command2.release;7.3面向对象的程序设计方法7.3.2对象引用一.对象的引用规则青岛理工大学(临沂)2011-11-1922(1)相对引用THIS.Caption&&本对象的Caption属性THISFORM.Cls&&清除本表单中图形和文本(2)绝对引用(准许多级引用,但要逐级引用)THISFORM.text1.value&&本表单的text1文本框的value属性THISFORM.label1.caption&&本表单的label1的Caption属性thisform.parent.label2.caption二.引用格式7.3.2对象引用青岛理工大学(临沂)2011-11-1923(3)对象属性值设置属性窗口:在设计阶段编程方式:在执行阶段,通过事件代码来设置,例如:表单上有一个按钮控件,要设置其caption的值为“退出”,编程方法为编写表单的load事件代码:thisform.command1.caption=“退出”7.3.2对象引用青岛理工大学(临沂)2011-11-1924例:将表单的标题设为“学生管理系统(1)在属性窗口直接将Caption属性修改为学生管理系统(2)编程修改:在表单上点右键出现快捷菜单,选择“代码”;为form1的load事件编写代码ThisForm.Caption=学生管理系统7.3.2对象引用青岛理工大学(临沂)2011-11-1925表单控件可分为5大类:输出类;输入类;控制类;容器类;链接类。每个控件均具有若干特征属性,有相同也有差别,通过属性设置可以设计出满足要求的控件。表单控件的作用获取数据执行命令美化界面显示数据青岛理工大学(临沂)2011-11-19261)输出类:标签,图象,线条,形状2)输入类:文本框,编辑框,微调按钮,列表框,组合框3)控制类:命令按钮,命令按钮组,复选框,选项按钮组,计时器4)容器类:表格,页框,Container容器5)链接类:ActiveX控件,ActiveX绑定控件,超级链接表单控件分类青岛理工大学(临沂)2011-11-1927一.标签(Label)7.4输出类控件label1label2label31.Caption属性Caption属性指定标签标题,即显示的文本内容设置方法:1)属性窗口设置Caption属性2)代码命令:THISFORM.LABEL1.Caption=“学号”[常用属性]:caption,AutoSize,Forecolor,FontSize,Backstyle[功能]:用于在表单上显示提示或说明青岛理工大学(临沂)2011-11-19282.其他常用属性AutoSize:当值为.T.是表示自动调整大小与文本内容所占空间一致Forecolor:设置标题的字体颜色。FontSize:字体大小,默认值9。Backstyle:设置标签的背景是否透明,0为透明,1为不透明。一.标签(Label)青岛理工大学(临沂)2011-11-19291.文本框的常用属性Value:保存文本框的当前内容。ControlSource:设置文本框的数据来源。PassWordChar:设置输入口令时显示的字符。Readonly:当值为‘T’时,文本框为只读。2.文本框的值:由Value属性确定1)属性窗口修改Value属性2)用代码设置Value属性:thisform.text1.value=“VFP一.文本框(text)7.5输入类控件青岛理工大学(临沂)2011-11-1930例:P143页,密码演示程序青岛理工大学(临沂)2011-11-1931“确定”按钮ifthisform.text1.value=123messagebox(密码正确,48,提示信息)elsethisform.text1.setfocusmessagebox(密码错误,48,提示信息)endif“重试”按钮thisform.text1.value=thisform.text1.setfocusthisform.refresh“退出”按钮thisform.release青岛理工大学(临沂)2011-11-1932MessageBox()的使用是一个消息框,用于和用户之间完成交互操作的信息框函数。格式:MESSAGEBOX(提示信息,按钮参数,消息框标题)函