




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章表单设计基础11/24/20221第九章表单设计基础10/11/20221向对象的基本概念1.对象(Object)对象可以是现实世界中的任何物体,例如一扇窗户可以作为对象,一辆汽车可以作为对象,一台计算机可以作为对象。对象都具有一定的属性、特征,并可以产生一定的行为。2.类(Class)类是对一组相似对象的性质描述,这些对象具有相同种类的属性和方法。类决定了对象的特征,所有对象的属性、事件和方法程序在定义类时被指定。有了类的定义后,就可以基于类生成这类对象的任何一个对象。11/24/20222向对象的基本概念10/11/202223.属性属性即对象的特性,是对象的外观及行为的特征。在VisualFoxPro中,各种对象具有70多个属性。对象的属性可以在建立对象时由其所属的类(或子类)中继承,也可以在对象创建或运行时进行修改与设置。11/24/202233.属性10/11/202234.事件事件是对象可以识别和响应的行为与操作,用户可以编写相应的代码对此进行响应。某一个对象发生什么事情的时候,执行相应的代码面向对象的程序设计林一凡(对象)电话响了(事件)---林一凡.接电话(代码)按纽(对象)被左键点击(click事件)—this.release弹出窗口(代码)
11/24/202244.事件10/11/202245.方法方法是对象可以执行的动作,是封装在对象内部的,在任何时候都不能独立存在于对象之外。在VisualFoxPro中提供了50多种不同的方法,每种方法都有自己的名称,称为方法名。VisualFoxPro中不同的对象具有不同的方法,与事件不同的是,方法程序集合可以无限扩展,除了在各个类中已定义的方法外,可以根据需要自定义方法(向类中添加新方法),以完成相应的操作,新建的方法属于表单或表单集。11/24/202255.方法10/11/202259.2表单的设计与运行
表单(Form)是VisualFoxPro提供的用于建立应用程序界面的最主要的工具之一。表单相当于WINDOWS应用程序的窗口
9.2.2利用表单向导创建表单表单有两个扩展名,一个为.SCX(表单文件),另一个为.SCT(表单备注文件)。在VisualFoxPro中,新建表单一般可以通过以下两种方法:使用表单向导。使用“表单设计器”。11/24/202269.2表单的设计与运行表单(Form1.使用表单向导创建单表表单:(1)单击工具栏上的“新建”按钮,或选择“文件”菜单中的“新建”命令,打开新建对话框,在新建对话框中的“文件类型”中选择表单,单击“向导”按钮。(2)在“向导选取”对话框中选择“表单向导”,单击“确定”按钮。
11/24/2022710/11/20227(3)使用“表单向导”第一步,选取字段。(4)使用“表单向导”第二步,选取表单样式。(5)使用“表单向导”第三步,选择排序字段。(6)使用“表单向导”第四步,输入表单标题。(7)用“表单向导”设计的表单如图所示。11/24/20228(3)使用“表单向导”第一步,选取字段。10/11/20222.使用表单向导创建一对多多表表单:(1)单击工具栏上的“新建”按钮,或选择“文件”菜单中的“新建”命令,打开新建对话框,在新建对话框中的“文件类型”中选择表单,单击“向导”按钮。(2)在“向导选取”对话框中选择“一对多表单向导”,单击“确定”按钮。
11/24/202292.使用表单向导创建一对多多表表单:10/11/20229(3)使用“表单向导”第一步,选取父表字段。(4)使用“表单向导”第二步,选取子表字段。(5)使用“表单向导”第三步,关联两个表,选取匹配字段(5)使用“表单向导”第四步,选取样式。(5)使用“表单向导”第五步,选择排序字段。(6)使用“表单向导”第六步,输入表单标题。(7)用“表单向导”设计的表单如图所示。11/24/202210(3)使用“表单向导”第一步,选取父表字段。10/11/209.2.3利用表单设计器设计表单1.使用表单设计器创建表单:单击工具栏上的“新建”按钮,或选择“文件”菜单中的“新建”命令,打开新建对话框,在新建对话框中的“文件类型”中选择表单,单击“新建文件”按钮。打开表单设计器窗口,里面生成一张空白的表单11/24/2022119.2.3利用表单设计器设计表单1.使用表单设计器创建表单2.表单设计器工具栏11/24/2022122.表单设计器工具栏10/11/2022123.属性窗口在VisualFoxPro中,每个对象都可以用一组属性来刻画其特征,每个属性都有属性值,改变属性值就相当于改变了对象的特征。属性值的设置可以通过属性窗口来进行,也可以在程序运行时动态设置。如果屏幕上没有显示属性窗口,可以单击表单设计工具栏中的“属性窗口”按钮,或者在表单中选定某个对象,然后在该对象上右击鼠标,从弹出的快捷菜单中选择“属性”命令,就会出现属性窗口。11/24/2022133.属性窗口10/11/202213属性窗口包含对象框、选项卡、属性设置框、属性、方法、事件列表框和属性描述等部分:11/24/202214属性窗口包含对象框、选项卡、属性设置框、属性、方法、事件列表例9.2通过属性窗口设置属性,建立如图所示的表单。设置属性过程如下:(1)在表单设计器中单击表单,使其成为当前对象,从属性窗口的属性列表中选择Caption属性,将其值设为“欢迎表单”。(2)在表单中新建一个标签(显示文本)使其成为当前对象,从属性窗口的属性列表中选择Caption属性,将其值设为“武汉欢迎你们!”选择FontSize属性,将其值设为28;选择FontName属性,将其值设为“华文彩云”。
11/24/202215例9.2通过属性窗口设置属性,建立如图所示的表单。10/4.代码窗口VisualFoxPro是一种面向对象的编程语言,它支持事件响应编程方法,通过代码窗口来帮助程序员编写各个对象的事件代码。每个对象都能响应的事件,例如:一个按钮,当被鼠标坐键点击这个事件,做什么?选择该按钮—代码窗口—click事件——写入要做什么的代码,例如:thisform.release表单中的每个控件对象都有自己的代码窗口,用于响应各种事件。打开对象的代码窗口有多种方法:在对象上双击鼠标,或者单击表单设计器工具栏上的代码窗口的图标,都可弹出代码窗口,代码窗口如图所示。11/24/2022164.代码窗口10/11/20221611/24/20221710/11/202217代码窗口包括对象列表框、过程列表框、事件编辑框三个部分(1)“对象”列表框此列表框中列出当前表单或表单集的所有对象,选中某个对象就切换到该对象的代码事件。(2)“过程”列表框此列表框列出了所选对象的全部事件,当用户从“列表框”中选中一个事件后编写代码,这编好的代码就属于该时间。(3)代码编辑框代码窗口的主体部分是代码编辑框,用户在此编辑框中编写相应事件的代码。
11/24/202218代码窗口包括对象列表框、过程列表框、事件编辑框三个部分10/例9.3在代码窗口设置标签控件的属性执行:在代码窗口选择对象为标签label1,事件为init在里面写入以下代码:ThisForm.Label1.Caption=“武汉欢迎你们”ThisForm.Label1.FontName=“华文彩云”ThisForm.Label1.FontSize=28此代码写在click事件的里的效果如何?11/24/202219例9.3在代码窗口设置标签控件的属性执行:10/11/202例9.4根据程序运行情况动态改变控件属性执行:
在当前表单中新建一个文本框Text1(可以输入,显示文本,连接数据源),把标签Label1的Caption属性值设置成为文本框的当前值value.在代码窗口选择对象为标签label1的click事件在里面写入以下代码:ThisForm.Label1.Caption=ThisForm.text1.Value11/24/202220例9.4根据程序运行情况动态改变控件属性执行:10/11/2例9.5在运行时调用方法程序执行:在代码窗口里选择表单form1为对象,事件click里写入代码:ThisForm.HideThisform.releaseThisform.showThisform.refreshThisform.setfocusHide方法,对象的行为11/24/202221例9.5在运行时调用方法程序执行:10/11/2022215.表单控件工具栏6.调色板工具栏11/24/2022225.表单控件工具栏10/11/2022227.布局工具栏8.表单菜单布局工具栏表单菜单11/24/2022237.布局工具栏布局工具栏9.数据环境设计器利用表单设计器设计操作数据库或数据表中的数据表单时,需要为所设计的表单设置相关的数据源,而数据环境就包含了与表单有联系的数据表以及表之间的关系。在通常情况下,数据环境中的表会随着表单的打开或运行而打开,并随着表单的关闭或释放而关闭。11/24/2022249.数据环境设计器10/11/202224设置如下表单:返回11/24/202225设置如下表单:返回10/11/2022251、打开数据环境打开数据环境有多种方式在表单设计窗口中右击鼠标,从出现的快捷菜单中选择“数据环境”单击表单设计器工具栏上的“数据环境”按钮,11/24/2022261、打开数据环境10/11/202226在数据环境中添加表(1)在数据环境设计器窗口中单击右键,在快捷菜单中选择“添加”命令,选择要添加的表。(2)单击对话框中的“添加”按钮,就将表添加到数据环境窗口中。也可以选择“其他”,在“打开”对话框中选择要添加的表,再按“确定”按钮就可以添加其它数据库中的表或其它自由表。按同样方法添加多个表或视图,添加完毕后。单击“关闭”按钮在数据环境窗口就会显示选定的表和视图及表中的字段和索引。11/24/202227在数据环境中添加表10/11/202227移去表或视图(1)在“数据环境”窗口中,单击准备移去的表或视图,被选中的表或视图呈高亮度显示。(2)单击右键,选择“移去”命令,即从数据环境中移去该表或视图。注意:当表从数据环境中移去后,与该表相关的所有关系也随之消失。11/24/202228移去表或视图10/11/2022282.在数据环境中设置关系若添加到数据环境中的表是数据库表且已经建立了表间的永久关系,则这些永久关系将自动添加到数据环境中。若数据表之间永久关系不存在,则可在数据环境设计器中建立关系方法:在数据环境设计器中父表的连接字段拖动到子表与其匹配字段的索引标记上。11/24/2022292.在数据环境中设置关系若添加到数据环境中的表是数据库表且已3.向表单添加字段VisualFoxPro允许用户直接从数据环境中把表、视图或字段拖到表单上,系统会根据字段类型自动创建相应的控件,同时还添加一个说明性的标签控件。如果拖到表单上的字段为字符型,系统将产生一个文本框控件;如果是逻辑型字段,系统会产生一个复选框控件;如果是备注型字段,系统会产生一个编辑框控件;如果是表,系统会产生一个表格控件
11/24/2022303.向表单添加字段10/11/202230查看字段控件属性和表属性同时系统设置数据源属性:将控件和相应的数据源绑定在一起.字段控件ControlSource属性为:学生.学号表控件RecordSource属性为:成绩11/24/202231查看字段控件属性和表属性同时系统设置数据源属性:将控件和相应给表单添加按钮浏览表记录(图)(1)在表单上新建三个按钮command1,command2,command3(2)修改三个按钮的caption属性为“上一条”,“下一条”“退出”(3)在command2按钮(即下一条)的代码窗口click事件里写入:ifeof()messagebox(“这是最后一条记录”)elseskip1endifThisform.refresh11/24/202232给表单添加按钮浏览表记录(图)Thisform.refre(4)在command1按钮(即上一条)的代码窗口click事件里写入:ifbof()messagebox(“这是第一条记录”)elseskip–1thisform.refreshendif(5)在command3按钮(即退出)的代码窗口click事件里写入:thisform.release11/24/202233(4)在command1按钮(即上一条)的代码窗口clic控件类对象表单中有两类控件,绑定型控件和非绑定型控件。绑定型控件通过设置数据源属性与数据绑定,数据源可以是表中的一个字段、临时表的字段、一个变量或表中的一列,可以在属性窗口设置相应控件的数据源属性,也可以通过对数据环境的操作自动绑定数据源。
11/24/202234控件类对象10/11/2022341标签(Label)标签是最常用的一种控件,用来显示文本。可以在程序代码中通过重新设置Caption属性修改标签显示的文本。标签显示的文本最多能容纳256个字符。标签控件的常用属性:11/24/2022351标签(Label)10/11/202235Thisform.label1.caption=“欢迎使用VFP”如果代码窗口当前对象即是label1,也可以:This.caption=“欢迎使用VFP”11/24/202236Thisform.label1.caption=“欢迎使用V2文本框(Text)与标签不同,文本框有自己的数据源,并可以进行输入和修改。文本框通常以表的一个字段或一个内存变量作为自己的数据源。文本框一般只包含单行数据。文本框几乎可以编辑任何类型的数据,如数值型、字符型、逻辑型、日期型等。11/24/2022372文本框(Text)10/11/202237文本框的常用属性:11/24/202238文本框的常用属性:10/11/202238Alignment属性指定了文本在控件中的对齐方式:Inputmask属性指定在一个文本框中如何输入和显示数据X允许输入任何字符9允许输入数字和正符号#允许输入数字,空格和正负号.指定小数点的位置11/24/202239Alignment属性指定了文本在控件中的对齐方式:文本框常用事件和方法11/24/202240文本框常用事件和方法10/11/202240例:用表单设计一个登陆界面,当用户输入用户名和口令按确认按钮后,验证若正确,就显示”欢迎使用本系统”,然后关闭表单,若不正确,则显示”用户口令不对,请重新输入”,如三次输入不正确,就显示”用户口令不对,登录失败”关闭表单.(口令为6位数字,输入时显示为*)
11/24/202241例:用表单设计一个登陆界面,当用户输入用户名和口令按确认按钮执行:1.设置label1,label2,command1的caption属性为”用户名:”,”口令:”,”确认”2.设置text2的Inputmask属性为999999,Passwordchar属性为*3.设置command1的Default属性为.T.(回车相当与单击该按钮).4.给Form1新建一个属性num(表单菜单—新建属性),修改该属性的默认值为0,用于存放登录输入的次数(该属性在Form1创建时分配空间,释放时释放空间,类似于普通的内存变量)使用:thisform.num11/24/202242执行:1.设置label1,label2,command15.在按钮command1的click事件写入:ifthisform.text1.value="alice"andthisform.text2.value="971105"wait"欢迎使用本系统"windowtimeout3thisform.releaseelsethisform.num=thisform.num+1
ifthisform.num=3wait"用户名不对,登陆失败!"windowtimeout3thisform.release
elsewait"用户名或口令不正确,请重新输入!"windowtimeout3
endifendif11/24/2022435.在按钮command1的click事件写入:10/11/5.7.3编辑框(Edit)文本框只能编辑一行文本,在使用上有一定的局限性,在编辑框中允许编辑长字段或备注字段文本,允许自动换行并能用方向键、PageUp键和PageDown键以及滚动条来浏览文本。编辑框的与文本框的使用方法基本一致。属性value存放编辑框当前的值位置从0开始11/24/2022445.7.3编辑框(Edit)位置从10/11/20224例:设计一个表单,单击按钮在编辑框里文字里搜索单词”example”
1.编辑框edit1的Hideselection属性值为.F.(选定的字符串会显示成选定状态)11/24/202245例:设计一个表单,单击按钮在编辑框里文字里搜索单词”exam2.在命令按钮command1的click事件里写入代码:n=at("example",thisform.edit1.value)ifn!=0thisform.edit1.selstart=n-1thisform.edit1.sellength=7elsemessagebox("nothisword",0,"auction")endif11/24/2022462.在命令按钮command1的click事件里写入代码:15.7.4命令按钮(Command)命令按钮通常用来进行某一个操作,执行某个事件代码,完成特定的功能,如确定、退出、计算、查询等,是最常用的控件之一。命令按钮的常用属性:11/24/2022475.7.4命令按钮(Command)10/11/20225.7.5复选框(check)复选框可以用来指定一个逻辑状态,可以提供两个值的选择,“真”或“假”,复选框被选中时在方框内显示一个“”,否则方框内为空。但有时问题不能简单地分为“真”或“假”,如不确定,可以用NULL来表示,此时复选框变为灰色。11/24/2022485.7.5复选框(check)10/11/202248Value属性的设置值属性值说明0或.F.复选框未选中,默认值1或.T.复选框选中2或.NULL.不确定,只在代码中有效11/24/202249Value属性的设置值属性值说明0或.F.复选框未选中,默认例5.19设计一个可以设置文本框字体大小和字体格式的表单.
1.创建两个形状shape1和shape2控件,specialeffect属性设置为0-3维11/24/202250例5.19设计一个可以设置文本框字体大小和字体格式的表单.
2.编写代码(1)在复选框check1的click事件里写入:ifthis.value=1thisform.text1.fontbold=.t.elsethisform.text1.fontbold=.f.endif11/24/2022512.编写代码10/11/202251(2)在复选框check2的click事件里写入:ifthis.value=1thisform.text1.fontitalic=.t.elsethisform.text1.fontitalic=.f.endif11/24/202252(2)在复选框check2的click事件里写入:10/11(3)在复选框check3的click事件里写入:ifthis.value=1thisform.text1.fontunderline=.t.elsethisform.text1.fontunderline=.f.endif11/24/202253(3)在复选框check3的click事件里写入:10/11(4)命令按钮command1的click事件写入:thisform.text1.fontsize=thisform.text1.fontsize+1thisform.refresh(5)命令按钮command2的click事件写入:thisform.text1.fontsize=thisform.text1.fontsize+1thisform.refresh11/24/202254(4)命令按钮command1的click事件写入:10/15.7.6列表框(list)列表框可以为用户提供一组预先设定的选项。列表框能够同时显示的项数受列表区域大小的限制,通过垂直滚动条可以浏览所有条目
11/24/2022555.7.6列表框(list)10/11/202255列表框常用属性
11/24/202256列表框常用属性
10/11/202256Rowsourcetype属性的设置值11/24/202257Rowsourcetype属性的设置值10/11/20225列表框的事件和方法11/24/202258列表框的事件和方法10/11/202258例5.20显示学生所有的信息11/24/202259例5.20显示学生所有的信息10/11/2022591.List1的Rowsourcetype属性设为6,Rowsource属性设为学生.姓名2.List1的Interactivechange事件代码:Thisform.refresh11/24/2022601.List1的Rowsourcetype属性设为6,Row5.7.7组合框(combo)组合框兼有列表框和文本框的功能,也可以接受从键盘输入的数据,有下拉列表框和下拉组合框两种形式。除了与列表框相同的属性外,组合框其它的常用属性0组合框(可选择,可输入)2下拉列表框(只能选择)11/24/2022615.7.7组合框(combo)0组合框(可选择,可输入例5.22创建一个求指定班级平均成绩的表单,要求:(1)组合框里选择班级(学号的左四位)后,表单将自动显示对应班级学生的平均成绩,(2)按”退出”按钮,自动关闭表单11/24/202262例5.22创建一个求指定班级平均成绩的表单,要求:(1)组合编写代码:1.Combo1的Init事件代码:indexonleft(学号,4)toxhuniquescanthis.additem(left(学号,4))endscansetindexto2.在Combo1的InterActiveChange事件里:Average成绩forleft(学号,4)=this.valueTOcjthisform.text1.value=cj11/24/202263编写代码:10/11/2022635.7.8计时器(timer)计时器控件允许以一定的时间间隔重复地执行某种操作。它通过检查系统时钟,确定是否到了该执行某一任务的时间。注意:在表单设计时,计时器在表单中是可见的;但运行时,计时器是不可见的。计时器的常用属性和事件11/24/2022645.7.8计时器(timer)10/11/202264例5.3创建一个数字时钟表单,要求(1)表单以1秒为时间间隔动态显示系统时间,”时分秒”3个中文字显示,(2)当秒数为奇数时前景色为蓝色,为偶数时为红色.11/24/202265例5.3创建一个数字时钟表单,要求(1)表单以1秒为时间间隔1.Timer1的Interval属性设为”1000”每隔1秒就会执行time事件里的代码.2.Timer1的time事件里写入代码:s=substr(time(),1,2)f=substr(time(),4,2)m=substr(time(),7,2)mn=val(m)ifmod(mn,2)=0thisform.text1.forecolor=rgb(255,0,0)elsethisform.text1.forecolor=rgb(0,0,255)
endifthisform.text1.value=s+"时"+f+"分"+m+"秒"thisform.text1.fontsize=2419:19:38根据红绿蓝颜色成份返回一个颜色值11/24/2022661.Timer1的Interval属性设为”1000”19:5.8.3选项按钮组(optiongroup)选项按钮组是包含多个选项按钮的容器对象,它将预定义的选项组提供给用户,供用户选择,允许用户从一组指定的操作选项中选择一个。11/24/2022675.8.3选项按钮组(optiongroup)10/111.选项按钮及选项按钮组的常用属性:2.选项按钮及选项按钮组的常用事件:Click事件。11/24/2022681.选项按钮及选项按钮组的常用属性:10/11/202268例.设计分专业统计学生人数表单,选择某一专业选项时,文本框显示该专业人数.
1.把学生.dbf(包含专业字段)添加到数据环境.11/24/202269例.设计分专业统计学生人数表单,选择某一专业选项时,文本框显2.选项按钮组OptionGroup1的click事件写入:docase
casethis.value=1countfor专业="信息管理"toxthisform.text1.value=xcasethis.value=2countfor专业="计算机应用"toythisform.text1.value=ycasethis.val
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 礼仪培训考试试题及答案
- 宋朝考试题目及答案
- 智能能源管理系统初步设计评估报告2025
- 少儿英语全真试题及答案
- 2025年智能家居可穿戴医疗设备市场增长趋势与用户需求分析报告
- 弱电面试题目及答案
- 江西省上饶2024-2025学年初三第一次诊断性英语试题含答案
- 江苏省淮安市淮阴区开明中学2025年初三下学期联考期末试卷英语试题含答案
- 电商数字营销的技术提升试题及答案
- 聚焦2025年:医疗器械售后服务市场前景分析与服务质量提升策略研究报告
- 放射科质量管理制度
- 科研助理笔试题库及答案
- 产品上市计划
- CHINET2024年全年细菌耐药监测结果
- 药物临床试验质量管理规范解读
- 膀胱癌健康宣教课件
- X线腰椎临床意义
- 零星工程框架协议书范本
- 绽放的梨花(2024年山东滨州中考语文试卷记叙文阅读试题)
- 2024-2025学年人教版英语七年级下册Unit 5 Here and now Section B 1a - 1d 教案
- 中国银行课件模板7
评论
0/150
提交评论