VFP第8章表单设计与面向对象程序设计基础_第1页
VFP第8章表单设计与面向对象程序设计基础_第2页
VFP第8章表单设计与面向对象程序设计基础_第3页
VFP第8章表单设计与面向对象程序设计基础_第4页
VFP第8章表单设计与面向对象程序设计基础_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章面向对象程序设计基础表单设计与11、表单设计根底1.1表单与表单向导表单〔Form〕在VFP中表达为一个窗口,是面向对象程序设计中的一种容器,其中可以参加很多其他对象。翻开向导选取对话框:在工具菜单的向导子菜单中选定表单命令。2单表表单向导与一对多表单向导3创立和运行表单的根本步骤翻开表单设计器MODIFYFORM〈文件名〉对象操作与编码:表单设计器,数据环境设计器,表单控件工具栏保存表单运行表单:例如DOFORMXSB(建立表单xsb.scx)快速创立表单:表单菜单的快速表单命令显示快速表单的表单设计器,数据环境设计器,表单控件工具栏等

1.2表单设计器4表单中经常包含许多控件。通过VFP的表单控件工具栏可创立的控件大致可分为5类。(1)输出类:标签、图象、线条、形状;(2)输入类:文本框、编辑框、微调控件、列表框、组合框;(3)控制类:命令按钮、命令按钮组、复选框、选项按钮组、计时器;(4)容器类:表格、页框、Container容器;(5)连接类:ActiveX控件、ActiveX绑定控件、超级链接。

以上分类仅着眼于控件的基本功能,实际上每个控件都含有多种特性。1.3在表单上设置控件5表单控件工具栏中的按钮62、面向对象程序设计根底2.1面向对象的概念在面向对象程序设计〔ObjectOrientedProgramming,简称为OOP〕中,对象〔Object〕是组成程序的根本构件,在这种方法中,用一种称之为“对象〞的程序构件来描述客观问题中“实体〞,用“类〞来模拟这些实体间的共性。对象是现实世界中实体的一种模拟工具,对象具有自己的特征和行为,对象的特征由它的各种属性来描述,对象的行为那么由它的事件和方法程序来表示。属性用来表示对象的特征,一个对象可以有多种属性,如按钮的名称、位置、大小、颜色等。事件是指由用户或系统触发的一个特定的操作,如用鼠标单击命令按钮将会触发一个Click事件。一个对象可以有多个事件,每个事件可以对应一个程序,称为事件过程。方法程序是VFP为对象内定的通用过程,能使对象执行一个操作。方法程序过程代码由VFP定义,用户不可见,但可以修改,相当于增加功能。7类〔CLASS〕是已经定义了的关于对象的特征和行为的模板,是具有相同属性特征和行为规那么的多个对象的一种统一描述。类是一个数据模式和假设干个程序过程经过封装而形成的一个整体。类规定并提供了对象具有的属性、事件和方法程序。对象是通过类来产生的,对象是类的实例。基类〔baseclass〕是指由VFP预先定义的类,基类可以作为用户定义类的根底,用户可以从基类来创立新类。子类〔subclass〕是以某个类的定义为起点创立的新类,前者称为父类。类具有继承性,新类将继承父类的全部特征,包括对父类所做的任何修改。用户可以从基类派生出子类,这就是用户定义类,可以为用户定义类设置属性、编写事件代码和方法程序。用户定义类可以添加到表单控件工具栏中。在VFP中类分为控件类和容器类,相应有控件对象和容器对象。8VisualFoxpro中的基类与对象VFP的基类可分为控件类和容器类,每个VFP基类都有自己的一套属性、方法和事件,也可以分别生成控件对象和容器对象。类名含义类名含义ActiveDoc活动文档Image图像CheckBox复选框Shape形状ComboBox组合框Line线条EditBox编辑框CommandButton命令按钮ListBox列表框Spinner微调TextBox文本框Timer计时器Label标签OleBoundControlOle绑定型控件Header标题头HyperLink超级链接常用控件类9容器〔Container〕类对象能够包含其他对象,用户可以单独地访问和处理容器类对象中所包含的任何一个对象。类名含义类名含义Container容器PageFrame页框FormSet表单集Page页面Form表单ToolBar工具条Grid表格OptionGroup选项按钮组Column列CommandGroup命令按钮组常用容器类容器包含的对象容器包含的对象命令按钮组命令按钮页框页面容器任意控件页面任意控件、容器和自定义对象表单集表单工具条表格表格列表单页框、任意控件、容器或自定义对象表格列标题头和除表单集、表单、工具条、计时器及其他列以外的其余任一对象容器类所能包含的对象102.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|ObjectNameTHIS.PropertyName|Event|Method|ObjectNameObjectName.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颜色红值绿值蓝值黑000蓝00255绿02550青0255255红25500洋红2550255黄2552550白255255255标准色的RGB参数RGB函数的格式:RGB(nRedValue,nGreenValue,nBlueValue)

其中参数nRedValue,nGreenValue,nBlueValue分别是表示颜色中含有红绿蓝的成分,范围都是0到255。例如:THISFORM.Forecolor=RGB(255,0,0)17[举例]设计只含一个文本框控件的表单(见图),要求逐次单击文本框的内部能轮流显示当前日期与时间,试写出设计步骤。(1)创立表单:往命令窗口键入命令MODIFYFORMrqsj,使显示rqsj.scx的表单设计器窗口。(2〕创立文本框:单击表单控件工具栏中的文本框按钮,然后单击Form1表单窗口内某处,该处就会产生一个Text1文本框控件。(3)将表单的Caption属性改为“日期与时间〞:单击表单窗口,属性窗口的组合框中便显示Form1→在属性列表中选定Caption属性→在文本框中输入日期与时间字样,按回车键后表单窗口的标题栏就会显示这些文字。18(4)表单的Load事件代码的设置:双击表单窗口翻开代码编辑窗口→在对象组合框中确定表单项选择项,并在过程组合框中确定Load事件选项→在列表框中输入以下代码:PUBLICi&&Load事件在表单装入内存时触发,设置I为公共变量(5)文本框的Click事件代码编写如下:IFi=.T.&&变量I用于控制轮流显示THISFORM.TEXT1.VALUE=DATE()&&本表单的文本框的值设置为当前日期THISFORM.TEXT1.DateFormat=12&&日期格式设置为年月日次序THISFORM.TEXT1.DateMark="."&&年月日间隔符设置为点号i=.F.&&触发Click事件I值就变反ELSETHISFORM.TEXT1.VALUE=TIME()&&本表单的文本框的值设置为当前时间i=.T.&&触发Click事件I值就变反ENDIF〔6〕保存表单,运行表单。DOFORMrqsj19【例】使用表单设计器设计一个学生信息浏览窗口,如以下图。操作步骤:⑴翻开表单设计器,新建一个表单,设置表单的相关属性、数据环境。*command1控件的Click事件代码:SelestudentsIfnotbof()gotopthis.enabled=.f.this.parentmand2.enabled=.f.EndifThis.parentmand3.enabled=.t.This.parentmand4.enabled=.t.Thisform.refresh*command5控件的Click事件代码:Thisform.release⑵通过表单控件工具栏,在表单中添加标签、文本框、编辑框、图片框、命令按钮等相关控件,使用布局工具调整控件对象在表单中的位置,设置对应控件的相关属性。⑶将显示、输出表数据的控件与表对应字段进行绑定。⑷编写命令按钮的Click事件代码20对象属性属性值说明Form1Desktop.T.表单设置在桌面上WindowState2表单最大化BorderStyle0取消表单边框TitleBar0取消表单标题栏Picturec:\vfp\gallery\graphics\tools.ico表单贴若干tools.ico拼成的壁纸Label1Caption学生管理系统封面文字AutoSize.T.Label1区域自动适应标题大小FontName隶书字体FontSize36文字大小FontBold.T.粗体ForeColor0,0,255标题颜色为蓝色BackStyle0背景透明,不显示Label1区域Shape1Curvature99为画椭圆,使圆角最大BorderColor255,255,0边框颜色为黄色BackColor0,255,255背景颜色为青色“封面〞属性设置[举例]设计如下图的应用程序封面。(1)创立表单FM.SCX。(2)在表单上创立标签和形状控件各1个。(3)设置属性:详见下表(4)将封面的文字置前于椭圆:选定Label1,然后在布局工具栏中选定“置前〞按钮。假设已置前,那么该步骤可省。(5)Form1的RightClick事件代码编写如下:THISFORM.Release&&右击表单执行Release方法程序,从内存释放该表单213常用控件标签(Label)

常用来显示表单中的各种说明或提示,被显示的文本在Caption属性中指定,最多可包含256个字符。标签的常用属性属性名说明默认值AutoSize确定是否根据标题的长度来调整标签的大小.F.Caption标签显示的文本标签的名字BackColor标签的颜色(在BackStyle=2时不起作用)ForeColor标签内容的颜色Left标签距离表单左边框的长度Top标签距离表单上边框的长度Visible标签在运行时是否可被看见.T.Name引用该标签对象时所用的名称Label加数字FontName标签内容字体的名称宋体FontSize标签内容字体的尺寸大小9BackStyle确定标签是否透明1(不透明)WordWrap确定标签上显示的文本能否换行.F.22图象(Image)利用图象控件的Picture属性可在表单上加载图象。可在设计时在属性窗口设置,也可在表单运行时通过在某一事件过程中设置代码来完成。图像的常用属性属性名说明默认值Picture指定等显示的图像文件名BorderStyle指定图像控件的边框样式0-无BackStyle指定图像的背景是否透明1-不透明Stretch指定对放入在该图像控件中的图像尺寸进行如何调整。0-裁剪、1-等比填充、2-变比填充0-裁剪形状(Shape)和线条(Line)用于在表单上画各种形状的图形和线条。形状的常用属性属性名说明默认值Curvature指定形状控件的角的曲率。0-直角、1~99-圆角0BorderStyle指定线条的线型1-实线FillStyle指定用来填充形状的图案。0-透明、1-不透明1-不透明SpecialEffect指定形状的外观效果。0-3维、1-平面1-平面线条的常用属性属性名说明默认值BorderWidth指定线条的线宽(0~8192个像素点)1BorderStyle指定线条的线型1-实线BorderColor指定线条的颜色LineSlant指定线条的倾斜方向。\-左上到右下、/-左下到右上\23命令按钮(CommandButton)常用来启动某个事件代码,以完成特定功能。命令按钮的常用属性属性名说明默认值Caption命令按钮上显示的文字按钮的名字Name引用该按钮控件的名字Command加数字Picture指定要在按钮上显示的图片文件DownPicture指定当按钮被按下时显示的图片文件ToolTipText当鼠标移到该按钮上方时显示的文字,此属性的设置必须在表单的ShowTips属性设置为.T.时才有效。Default指定该按钮是否为默认被选择.F.Cancel指定该按钮的Click事件是否与键盘的Esc键相对应.F.DisabledPicture指定当该按钮失效时,按钮上显示的图片文件Enabled决定此按钮能否被操作.T.24命令按钮组(CommandGroup)是包含一组命令按钮的容器控件,可以单个或作为一组来操作其中的按钮。命令按钮组的常用属性属性名说明默认值ButtonCount命令按钮组中命令按钮的数目2BackStyle命令按钮组控件背景是否透明1-不透明Name引用该命令按钮组控件的名称Enabled指定此命令按钮组能否被操作.T.Value指定或返回操作的是命令按钮组中第几个命令按钮控件125文本框(Text)

用来在应用系统与用户之间进行数据交互的一种工具,允许用户添加或编辑保存在表中非备注字段中的数据。。文本框常用事件:

GotFocus文本框获得焦点时发生Valid文本框失去焦点时发生LostFocus文本框失去焦点后发生InteractiveChange当文本框中的值发生改变时发生Keypress用户按键时发生,根据传递的参数(所按键的Ascii值)以判断用户对键盘的操作。(nKeyCode,nShiftAltCtrl)文本框的常用属性属性名说明默认值Alignment文本框中的内容对齐方式,0-左、1-右、2-中间、3-自动3-自动ControlSource指定为文本框提供显示内容的数据源InputMask指定每个字符输入时必须遵守的规则PasswordChar当其为一非空字符时,用户每输入一个字符,文本框的对应位置就显示一个这里设定的字符。ReadOnly指定是否为只读状态.F.Value文本框的当前值26编辑框(Edit)和文本框类似,用于输入或更改文本,并允许输入多段文本。注意:(1)编辑框只允许输入文本类型数据,不能输入其他类型数据。(2)在编辑框中可以用回车符输入多段文本,故常用来处理长的字符型字段或备注型字段(通过将编辑框与备注型字段绑定)。列表框(List)

提供一组选项,用户可以从中选择一个或多个选项。

列表框的常用属性属性名说明默认值ColumnCount列表框中的列数ListCount列表框中选项的个数1List(nrow,[ncol])用以存取列表框中选项的字符串数组Listindex列表框中选项的顺序号ControlSource用户从列表中选择的值保存至何处MultiSelect用户能否在列表框中一次选择一个以上的项.F.RowSource列表中显示内容的来源无RowSourceType指定数据源的类型0-无Selected(nrow)返回列表框中指定行的项是否被选定.F.Value列表框当前选择值,等同于List(nrow)DisplayValue指定列表框中选定项的第一列内容列表框常用方法:AddItem:在列表框中增加列表项(RowSourceType属性为0时)。RemoveItem:从列表中删除列表项(RowSourceType属性为0时)。Requery:当列表框中的值改变时,更新列表。27组合框(ComboBox)

兼有文本框和列表框的功能,拥有和文本框及列表框相应的属性和方法。通过控件的Style属性可以有下拉组合框和下拉列表框二种类型供选择。

组合框特有的属性属性名说明默认值Style指定组合框的类型。0-下拉组合框、2-下拉列表框0Displ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论