表单的设计与应用_第1页
表单的设计与应用_第2页
表单的设计与应用_第3页
表单的设计与应用_第4页
表单的设计与应用_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

第7章表单的设计与应用,本章要点,面向对象的概念建立表单管理表单运行表单常用表单控件,面向对象程序设计基础,面向过程的程序设计在传统的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码,一般从第一行代码执行程序并按应用程序中预定的路径执行,必要时调用过程。,例1假设有一个旅馆服务表文件GFU.DBF,利用传统的程序设计方法,编制一个主控程序,使它能提供以下功能:退出、查询、登记、消账、结算。,传统的程序设计如下:dowhile.t.clear?SPACE(10)+*?旅馆服务主菜单?*?SPACE(10)+*0退出旅馆前台服务*?SPACE(10)+*1查询*?SPACE(10)+*2登记*?SPACE(10)+*3消账*?SPACE(10)+*4结算*?SPACE(10)+*WAIT请选择04号菜单:TOA1,这是传统的程序设计方法,退出、查询、登记、消账、结算等5个功能分别由EXIT命令和CX、DJ、XZ、JS等4个子程序实现,然后再被主控程序调用。程序执行中所需要的所有数据、主菜单出现的位置、装饰符号“*”等必须全部在程序中加以说明和控制。,DOCASECASEA1=0EXITCASEA1=1messagebox(你选择了1)CASEA1=2messagebox(你选择了2)CASEA1=3messagebox(你选择了3)CASEA1=4messagebox(你选择了4)ENDCASEenddo,面向对象的程序设计,各个命令按钮有高度、宽度、背景色、按钮标题、按钮相对表单的位置、按钮标题颜色等属性,这些属性值就是描述命令按钮的一系列的数据,它们可以在按钮设计时进行设置,并可马上看到设置的效果,不需要经过编译运行修改再编译再运行这个过程,所以是可视化的。属性值(数据)也可以在程序运行时进行设置,即和按钮的操作程序写在一起。所以对程序员来说一个命令按钮的属性值(数据)和操作程序是一个整体,程序员把它们看成是一个实体,可以一起被删除、复制等,在VFP中称为一个对象,即对象是程序和数据的封装体,这种编程方法称为面向对象的程序设计方法。,在面向对象的程序设计中,程序代码不是按照预定的路径执行的,而是在响应不同的事件时执行不同的代码片段,即受“事件驱动”。事件可以由用户操作触发,也可以由来自操作系统或其它应用程序的消息触发,甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。面向对象程序设计的两个基本特点是:(1)它是可视化的编程方式。(2)程序运行没有一定的顺序,由事件驱动。,幸运7游戏,看一个例子:,什么是对象?对象:是具有某些特性的具体事物的抽象例如:一个球、一辆汽车、一个控件、一个窗体每个对象都有自己的特征和行为,类是同种对象的集合与抽象它是创建对象实例的模板类与对象的关系类是对象的定义对象是类的一个实例,对象和类,VFP中的基类和对象,1基类(1)容器类:可以容纳其他对象,并允许访问所包含的对象。(2)控件类:不能容纳其他对象。由控件类创造的对象是不能单独使用和修改的,它只能做为容器类中的一个元素,通过由容器类创造的对象修改或使用。2.用户创建的类,VisualFoxpro基类列表,对象的属性、事件和方法,属性:,描述对象特性的参数,设置:在属性窗口中直接修改在代码窗口中利用赋值语句修改THISFORM.对象名.属性=参数值例如:THISFORM.Command1.Caption=“确定”,对象:VFP中主要指表单和控件,Caption和Name两个属性的区别,所有对象都有自己的属性。它们是用来描述和反映对象特征的参数。例如:控件名称(Name)、标题(Caption)、颜色(Color)、字体(FontName)等属性决定了对象展现给用户的界面具有什么样的外观及功能,对别的表单操作可用表单名,事件,系统预先设定的,能被对象识别和响应的动作例如:常用事件有Click和DblClick等,对象的属性、事件和方法,事件驱动程序设计:系统等待事件发生执行已发生的事件过程,方法:,一种专门的子程序或函数,是对象自身可以完成的一定动作,语法:thisform.对象名.方法参数名,例如:Form1.ClsFORM2.SHOW,对象的属性、事件和方法,doformjsqjsq.hidewaitjsq.show,1.属性:,每种对象有若干个属性,不同对象的属性类型和属性个数是不完全相同,2.方法:,决定了对象可以直接完成的动作。一般用动词,语法:对象名.方法参数,3.事件:,能被对象识别的动作。一般也用动词,可以在事件中编写程序,用来描述对象特征的一些数据。一般用名词,语法:THISFORM.对象名.属性=参数值,属性、方法与事件的比较,1.表单设计(界面设计)2.属性设置3.代码设计4.保存和运行程序,创建应用程序的基本步骤,练习:在表单上添加一个命令按钮,标题为“单击我”,单击按钮时,标题为“你单击了我”.,1.This:引用当前对象如:this.enabled=.t.2.Thisform:当前的表单如:mand1.enabled=.t.3.parent属性:用于指定引用控件的容器对象如:假设当前操作的对象是一个表单上的命令按钮this.parent.backcolor=RGB(0,0,255)另外以命令方式也可以运行表单。Doform.scx,数据环境,1打开数据环境设计器表单设计器环境下,单击“表单设计器”工具栏上的“数据环境”按钮,或选择【显示】|【数据环境】命令,即可打开“数据环境设计器”窗口,此时,系统菜单栏上将出现“数据环境”菜单。2数据环境的常用属性常用的两个数据环境属性是AutoOpenTables和AutoCloseTables,快速表单,调用表单生成器的方法有以下三种:(1)在系统菜单中选择【表单】|【快速表单】命令。(2)单击“表单设计器”工具栏中的“表单生成器”按钮。(3)右击表单窗口,然后在弹出的快捷菜单中选择“生成器”命令。,1表单常用属性,表单的基本属性,Left,Height,Width,Top,Maxbutton,Minbutton,决定窗体的位置,决定窗体的大小,决定窗体的最大、最小化按钮可用,BorderStyle(边框),Enabled与Visible:设置窗体是否可用和可见的Font:设置直接显示在窗体中的文字的字体Picture:设置窗体中显示的图片,表单的基本属性,ForeColor(前景色),BackColor(背景色),Caption(标题),Icon(图标),(1)Release方法:将表单从内存中释放。ThisForm.Release(2)Refresh方法:刷新表单。(3)Show方法:显示表单。该方法将表单的Visible属性设置为.T.。(4)Hide方法:隐藏表单。该方法将表单的Visible属性设置为.F.。,2表单常用方法,3表单常用事件,(0)LOAD事件:在表单建立之前引发。(1)Init事件:在表单创建时引发.(2)Destroy事件:在表单对象释放时引发。(3)CLICK事件:用鼠标单击表单时引发.(4)RightClick事件:用鼠标右键单击表单时引发.(5)UNLOAD事件:表单释放时最后引发的事件,7.5常用表单控件,常用控件的公共属性name:控件的名称,它是代码中访问控件的标Fontname:字体名。Fontbold:字体样式为粗体。Fontsize:字体大小。Fontitalic:字体样式为斜体。Forecolor:前景色。Height:控件的高度Width:控件的宽度。Visible:控件是否显示。Enable:控件运行时是否有效。,7.5.13控件操作与布局,1控件的基本操作(1)选定控件用鼠标单击控件可以选定该控件,被选定的控件四周出现个控点(2)移动控件先选定控件,然后用鼠标将控件拖动到需要的位置上。也可用方向键对控件进行移动。(3)调整控件大小选定控件,然后拖动控件四周的某个控点可以改变控件的宽度和高度。也可以按住shift键的同时,用方向键对控件大小进行微调。,(4)复制控件先选定控件,选择【编辑】|【复制】命令,然后选择【编辑】|【粘贴】命令,最后将复制产生的新控件拖动到需要的位置。(5)删除控件选定不需要的控件,然后按Delete键或选择【编辑】|【剪切】命令,控件布局,7.5.13控件操作与布局,7.5.2标签(Label)控件,1标签控件的功能标签主要用于显示固定的文本信息。2标签控件常用属性caption:指定标签的显示文本。autosize:autosize如果为真,标签在表单中的大小由caption属性中的文本长度决定,否则其大小由WIDTH和HEIGHT属性决定。forecolor:设置标题的字体颜色。backstyle:设置标签的背景是否透明,0透明,1不透明,默认为不透明。name:标签对象的名称,是程序中访问标签对象的标识。,7.5.3文本框(TextBox)控件,1文本框控件的功能:(1)用于显示或接收单行文本信息(不设置ControlSource属性),默认输入类型为字符型,最大长度为256个字符。(2)用于显示或编辑对应变量或字段的值(设置ControlSource属性为已有变量或字段名)。,ControlSource:设置文本框的数据来源。Value:保存文本框的当前内容,如果没有为ControlSource属性指定数据源,可以通过该属性访问文本框的内容。它的初值决定文本框中值的类型。PassWordChar:设置输入口令时显示的字符。Readonly:确定文本框是否为只读,为“.T.”时,文本框的值不可修改。,2文本框控件常用属性,7.5.4命令按钮(CommandButton)控件,1命令按钮控件功能命令按钮典型地用来启动某个事件代码、完成特定功能,如关闭表单、移动记录指针、打印报表等。,2命令按钮控件常用属性Default:命令按钮的Default属性默认值为.F.,如果该属性设置为.T.,在该按钮所在的表单激活的情况下,按Enter,可以激活该按钮,并执行该按钮的Click事件代码。一个表单只能有一个按钮的Default属性为真。Cancel:命令按钮的Cancel属性默认值为.F.,如果设置为.T.,在该按钮所在的表单激活的情况下,按Esc键可以激活该按钮,并执行该按钮的Click事件代码。一个表单只能有一个按钮的Cancel属性为真。Caption:设置按钮的标题。Enabled:确定按钮是否有效,如果按钮的属性Enabled为.F.,单击该按钮不会引发该按钮的单击事件。对命令按钮的使用最重要的是编写Click事件代码。,【例】创建一个如图7-14所示的登录窗口,并将表单保存为FORM2。,在登录按钮的单击事件中输入如下代码:ifthisform.text1.value=”user1”andthisform.text2.value=”123456”messagebox(“欢迎使用本系统”)thisform.backcolor=rgb(255,128,128)elsemessagebox(“密码或用户名错误”)endif,计时器控件(timer)“计时器”控件主要是利用系统时钟来控制某些具有规律性、周期性任务的定时操作。“计时器”控件不能单独使用,必须与表单、容器类或者控件类一同使用。在设计时可见,在运行时不可见。,7.5.5命令按钮组(CommandGroup)控件,1命令按钮组功能命令按钮组是包含一组命令按钮的容器控件,用户可以单个或作为一组来操作其中的按钮。,Buttoncount:命令按钮组中命令按钮的数目。Value:默认情况下,命令按钮组中的各个按钮被自动赋予了一个编号,如1,2,3,等,当运行表单时,一旦用户单击某个按钮,则Value将保存该按钮的编号,于是在程序中通过检测Value的值,就可以为相应的按钮编写特定的程序代码。,2命令按钮组常用属性,命令按钮组示例,实验书P70的第3题:设计一个背景变色表单。,This.parent.backcolor,Rgb()R:redG:greenB:blue,7.5.6编辑框(EditBox)控件,1编辑框控件的功能用于显示或编辑多行文本信息。编辑框实际上是一个完整的简单字处理器,在编辑框中能够选择、剪切、粘贴以及复制正文,可以实现自动换行,能够有自己的垂直滚动条。,ControlSource:设置编辑框的数据源,一般为数据表的备注字段。Value:保存编辑框中的内容,可以通过该属性来访问编辑框中的内容。Scrollbars:指定编辑框是否具有滚动条,当属性值为时,编辑框没有滚动条,当属性值为(默认值)时,编辑框包含垂直滚动条。,2编辑框常用属性,7.5.7复选框(CheckBox)控件,1复选框的功能用于标识一个两值状态,如真(.t.)或假(.f.)。当处于“真”状态时,复选框内显示一个对勾,当处于“假”状态时复选框内为空白。,Caption:用来显示复选框旁边的文字Value:用来指明复选框的当前状态,如下表,ifthis.value=1thisform.label1.fontunderline=.t.elsethisform.label1.fontunderline=.f.Endif文字格式变化,2复选框常用属性,7.5.8选项组(OptionGroup)控件,1选项组控件的功能选项组又称为选项按钮组,是包含选项按钮的一种容器。一个选项组中往往包含若干个选项按钮,但用户只能从中选择一个按钮。当用户单击某个选项按钮时,该按钮即成为被选中状态,而选项组中的其他选项按钮,不管原来是什么状态,都变为未选中状态,被选中的选项按钮中会显示一个圆点。,2选项组常用属性ButtonCount:指定选项组中选项按钮的数目。Value:用于指定选项组中哪个选项按钮被选中。ControlSource:指定选项组数据源。Buttons:用于存取选项组中每个选项的数组。,n=this.valuedocasecasen=1thisform.label1.forecolor=rgb(255,0,0)casen=2thisform.label1.forecolor=rgb(0,255,0)casen=3thisform.label1.forecolor=rgb(0,0,255)casen=4thisform.label1.forecolor=rgb(255,255,255)casen=5thisform.label1.forecolor=rgb(int(rand()*255),int(rand()*255),int(rand()*255)Endcase文字格式变化,7.5.9列表框(ListBox)控件,1列表框的功能列表框提供一组条目(数据项),用户可以从中选择一个或多个条目,一般情况下,列表框显示其中的若干条目

温馨提示

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

评论

0/150

提交评论