资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
第11页 / 共32页
第12页 / 共32页
第13页 / 共32页
第14页 / 共32页
第15页 / 共32页
第16页 / 共32页
第17页 / 共32页
第18页 / 共32页
第19页 / 共32页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
*,第八章,面向对象程序设计基础,表单设计与,1,1、表单设计根底,1.1 表单与表单向导,表单Form在VFP中表达为一个窗口,是面向对象程序设计中的一种容器,其中可以参加很多其他对象。,翻开向导选取对话框:,在工具菜单的向导子菜单中选定表单命令。,2,单表表单向导与一对多表单向导,3,创立和运行表单的根本步骤,翻开表单设计器 MODIFY FORM 文件名,对象操作与编码:表单设计器,数据环境设计器,表单控件工具栏,保存表单,运行表单:例如 DO FORM XSB (建立表单xsb.scx),快速创立表单:表单菜单的快速表单命令,显示快速表单的,表单设计器,,数据环境设计器,,表单控件工具栏等,1.2 表单设计器,4,表单中经常包含许多控件。通过VFP的表单控件工具栏可创立的控件大致可分为5类。,(1)输出类:标签、图象、线条、形状;,(2)输入类:文本框、编辑框、微调控件、列表框、组合框;,(3)控制类:命令按钮、命令按钮组、复选框、选项按钮组、计时器;,(4)容器类:表格、页框、Container容器;,(5)连接类:ActiveX控件、ActiveX绑定控件、超级链接。,以上分类仅着眼于控件的基本功能,实际上每个控件都含有多种特性。,1.3 在表单上设置控件,5,表单控件工具栏中的按钮,6,2、面向对象程序设计根底,2.1,面向对象的概念,在面向对象程序设计Object Oriented Programming,简称为OOP中,对象Object是组成程序的根本构件,在这种方法中,用一种称之为“对象的程序构件来描述客观问题中“实体,用“类来模拟这些实体间的共性。,对象是现实世界中实体的一种模拟工具,对象具有自己的特征和行为,对象的特征由它的各种属性来描述,对象的行为那么由它的事件和方法程序来表示。,属性用来表示对象的特征,一个对象可以有多种属性,如按钮的名称、位置、大小、颜色等。,事件是指由用户或系统触发的一个特定的操作,如用鼠标单击命令按钮将会触发一个Click事件。一个对象可以有多个事件,每个事件可以对应一个程序,称为事件过程。,方法程序是VFP 为对象内定的通用过程,能使对象执行一个操作。方法程序过程代码由VFP定义,用户不可见,但可以修改,相当于增加功能。,7,类CLASS是已经定义了的关于对象的特征和行为的模板,是具有相同属性特征和行为规那么的多个对象的一种统一描述。类是一个数据模式和假设干个程序过程经过封装而形成的一个整体。类规定并提供了对象具有的属性、事件和方法程序。对象是通过类来产生的,对象是类的实例。,基类base class是指由VFP预先定义的类,基类可以作为用户定义类的根底,用户可以从基类来创立新类。,子类subclass是以某个类的定义为起点创立的新类,前者称为父类。类具有继承性,新类将继承父类的全部特征,包括对父类所做的任何修改。,用户可以从基类派生出子类,这就是用户定义类,可以为用户定义类设置属性、编写事件代码和方法程序。用户定义类可以添加到表单控件工具栏中。,在VFP中类分为控件类和容器类,相应有控件对象和容器对象。,8,Visual Foxpro中的基类与对象,VFP的基类可分为控件类和容器类,每个VFP基类都有自己的一套属性、方法和事件,也可以分别生成控件对象和容器对象。,类名,含义,类名,含义,ActiveDoc,活动文档,Image,图像,CheckBox,复选框,Shape,形状,ComboBox,组合框,Line,线条,EditBox,编辑框,CommandButton,命令按钮,ListBox,列表框,Spinner,微调,TextBox,文本框,Timer,计时器,Label,标签,OleBoundControl,Ole绑定型控件,Header,标题头,HyperLink,超级链接,常用控件类,9,容器Container类对象能够包含其他对象,用户可以单独地访问和处理容器类对象中所包含的任何一个对象。,类名,含义,类名,含义,Container,容器,PageFrame,页框,FormSet,表单集,Page,页面,Form,表单,ToolBar,工具条,Grid,表格,OptionGroup,选项按钮组,Column,列,CommandGroup,命令按钮组,常用容器类,容器,包含的对象,容器,包含的对象,命令按钮组,命令按钮,页框,页面,容器,任意控件,页面,任意控件、容器和自定义对象,表单集,表单工具条,表格,表格列,表单,页框、任意控件、容器或自定义对象,表格列,标题头和除表单集、表单、工具条、计时器及其他列以外的其余任一对象,容器类所能包含的对象,10,2.2 面向对象的程序设计方法,控件:是表单上显示数据和执行操作的对象。,容器:是可以容纳其它对象的对象。,VFP中对象的属性、事件和方法程序由对象的属性窗口给出。该窗口显示了当前选定对象的所有属性、事件和方法程序,并允许用户更改属性,定义事件代码和修改方法程序。,属性窗口的组成,11,属 性,说 明,应用于,Caption,指定对象的标题(显示时标识对象的文本),表单,标签,命令按钮等,Name,指定对象的名字(用于在代码中引用对象),任何对象,Value,指定控件当前状态(取值),文本框,列表框等,ForeColor,指定对象中的前景色(文本和图形的颜色),表单,标签,文本框,命令按钮等,BackColor,指定对象内部的背景色,表单,标签,文本框,列表框等,BackStyle,指定对象背景透明否(透明则背景着色无效),标签,文本框,图象等,BorderStyle,指定边框样式为无边框,单线框等,表单,标签,文本框等,AlwaysOnTop,是否处于其它窗口之上(可防止遮挡),表单,AutoCenter,是否在VFP主窗口内自动居中,表单,ScaleMode,指定坐标单位,表单,Closable,标题栏中关闭按钮是否有效,表单,Controlbox,是否取消标题栏所有的按钮,表单,工具栏,MaxButton,是否有最大化按钮,表单,MinButton,是否有最小化按钮,表单,Movable,运行时表单能否移动,表单,WindowState,指定运行时是最大化还或最小化,表单,AutoCloseTables,表单释放时是否关闭表或视图,默认为.T.,数据环境,AutoOpenTables,表单加载时是否打开表或视图,默认为.T.,数据环境,常用的,属性选列,12,事件驱动编程机制,在面向对象的程序设计中,事件是对象能够识别和响应的动作。每个对象的事件是一些预先定义好的特定动作,可由系统触发,也可由用户的操作触发,对于一些可视对象(如命令按钮等),其最常见的事件往往是通过用户的交互操作产生的,例如单击鼠标或按下键盘上的某个键等。当作用在对象上的某个设定的事件发生时,与该事件相联系的方法程序就运行并实现该程序的功能。,这种通过模拟对象对外部事件的反映,并进而完成由外部事件序列所规定的功能的编程机制即为,事件驱动编程机制,。,事件代码与方法代码都是定义在某个对象中的一个程序过程,事件代码可以由一个事件触发而运行,其过程名与事件名相同,而一般的方法程序没有一个与之对应的事件触发,必须依靠其他程序调用才能运行。,13,事 件,触 发 时 机,Load,创建对象前,Init,创建对象时,Activate,对象激活时,GotFocus,对象得到焦点时,Click,单击鼠标左键时,DblClick,双击鼠标左键时,MouseUp,释放鼠标键时,MouseDown,按下鼠标键时,KeyPress,按下并释放某键盘键时,Valid,对象失去焦点前,LostFocus,对象失去焦点时,Unload,释放对象时,VFP局部常见事件,常用方法程序,Refresh方法程序,Form.Object.Refresh,功能:重画表单或控件,并刷新所有的值。,Release:释放表单,Show:显示表单,Hide:隐藏表单,14,对象引用规那么,(1)通常用以下引用关键字开头:,THISFORMSET 表示当前表单集,THISFORM 表示当前表单,THIS 表示当前对象,(2)引用格式:引用关键字后跟一个点号,再写出被引用对象或者对象的属性、事件、或方法程序。THISFORM.PropertyName|Event|Method|ObjectName,THIS.PropertyName|Event|Method|ObjectName,ObjectName.PropertyName|Event|Method,例如:THIS.Caption&本对象(表单或控件)的Caption属性,THISFORM.Cls&本表单的Cls方法程序,去除表单中的图形和文本,多级引用:,THISFORM.Command1.Caption&本表单的Command1,命令按钮的Caption属性,THIS.Command1.Click&本对象的Command1命,令按钮的Click事件,15,(3)控件也可引用包含它的容器,格式为:,Control.Parent,其中Control表示控件,Parent表示容器。,例如:THIS.Parent.Command1.Caption,表示引用本对象的容器(例如表单)的Command1命令按钮的Caption属性。,编程方式设置属性值,属性值设置格式:,ObjectName.Property=Setting,其中Setting为要设置的属性值。,例如:THIS.FontBold=.T.&本对象文本以粗体显示,THIS.Parent.Caption=time()&本对象的容器的,caption属性设置为当前时间,16,颜色,红值,绿值,蓝值,黑,0,0,0,蓝,0,0,255,绿,0,255,0,青,0,255,255,红,255,0,0,洋红,255,0,255,黄,255,255,0,白,255,255,255,标准色的RGB参数,RGB函数的格式:,RGB(nRedValue,nGreenValue,nBlueValue),其中参数nRedValue,nGreenValue,nBlueValue分别是表示颜色中含有红绿蓝的成分,范围都是0到255。,例如:THISFORM.Forecolor=RGB(255,0,0,),17,举例 设计只含一个文本框控件的表单(见图),要求逐次单击文本框的内部能轮流显示当前日期与时间,试写出设计步骤。,(1)创立表单:往命令窗口键入命令MODIFY FORM rqsj,使显示rqsj.scx的表单设计器窗口。,(2创立文本框:单击表单控件工具栏中的文本框按钮,然后单击Form1表单窗口内某处,该处就会产生一个Text1文本框控件。,(3)将表单的Caption属性改为“日期与时间:单击表单窗口,属性窗口的组合框中便显示Form1在属性列表中选定Caption属性在文本框中输入日期与时间字样,按回车键后表单窗口的标题栏就会显示这些文字。,18,(4)表单的Load事件代码的设置:双击表单窗口翻开代码编辑窗口在对象组合框中确定表单项选择项,并在过程组合框中确定Load事件选项在列表框中输入以下代码:,PUBLIC i&Load事件在表单装入内存时触发,设置I为,公共变量,(5)文本框的Click事件代码编写如下:,IF i=.T.&变量I用于控制轮流显示,THISFORM.TEXT1.VALUE=DATE()&本表单的文本框的值设置为,当前日期,THISFORM.TEXT1.DateFormat=12&日期格式设置为年月日次序,THISFORM.TEXT1.DateMark=.&年月日间隔符设置为点号,i=.F.&触发Click事件I值就变反,ELSE,THISFORM.TEXT1.VALUE=TIME()&本表单的文本框的值设置为,当前时间,i=.T.&触发Click事件I值就变反,ENDIF,6保存表单,运行表单。DO FORM rqsj,19,【例】使用表单设计器设计一个学生
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6