版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本 章 内 容,8.3表单控件设计 8.3.1标签 8.3.2图像、线条、形状 8.3.3文本框 8.3.4编辑框 8.3.5列表框与组合框 8.3.6命令按钮 8.3.7命令按钮组,第八章面向对象程序设计,8.3.8复选框 8.3.9选项按钮组 8.3.10微调控件 8.3.11计时器 8.3.12容器 8.3.13表格 8.3.14页框 8.3.15表单集,8.3表单控件设计,1控件分类 VFP“表单控件”工具栏上有21个基类控件,按功能可分成以下5类: (1)输出类:标签、图像、线条、形状。 (2)输入类:文本框、编辑框、微调控件、列表框、组合框。 (3)控制类:命令按钮、命令按钮组、复
2、选框、选项按钮组、计时器。 (4)容器类:表格、页框、Contain容器、表单集。 (5)连接类:ActiveX控件、ActiveX挷定控件、超级链接控件。 2各类控件的缺省名称 各类控件的缺省名称见表810。,2各类控件的缺省名称 各类控件的缺省名称见下表。,标签控件(Label)常用于显示说明信息和对象的标题。 1标签常用属性 标签的常用属性见下表:,8.3.1标签,【例87】创建如图842所示的系统启动界面。 (1)设计界面 1)打开“表单设计器”窗口,并创建一个空白表单。 2)在表单上创建4个标签控件Label1、Label2、Label3和Label4。,(2)设置对象属性,(3)调
3、整控件 1)选定标签Label2,使用箭头键移动,使其与Label1重叠,但不生重合,产生阴影效果。 2)调整标签Label3和Label4的高度和宽度,使其成为竖排标签。 (4)保存表单 单击工具栏中的“保存”按钮 ,在“另存为”对话框中,选择表单保存的位置,输入表单的名称“系统启动界面.scx”,单击“保存”按钮。 (5)运行表单 单击“常用”工具栏中的“运行”按钮 ,表单运行结果如图842所示。,图842系统启动界面,1图像(Image) (1)图像控件的作用 图像控件用于在其中显示图像文件的图片。 (2)图像常用属性 图象对象常用属性见下表:,8.3.2图像、线条、形状,2线条(Lin
4、e) (1)线条控件的作用 线条控件用于在表单上创建直线或斜线。默认创建一条。 (2)线条常用属性 线条对象常用属性见下:,3形状(Shape) (1)形状控件的作用 形状控件用于在表单上创建圆、椭圆、正方形、矩形、圆角正方形和圆角矩形等几何形状。 (2)形状设置 形状对象常用属性见下表:,4应用举例 【例88】设计一个如图843所示的应用程序界面。 (1)设计界面 在表单上创建一个标签控件Label1、一个图像控件Image1、一个形状控件Shape1和两条水平线Line1、Line2。 (2)设置对象属性 在“属性”窗口中,分别设置各对象的属性值如下表:,Curvature,(3)编写事件
5、代码 表单Form1的Init事件 “代码” 如下: X=Thisform.Width/2 Y=Thisform.Height/3 Thisform.Shape1.Left=X-Thisform.Shape1.Width/2 Select Zgjk.姓名,Xs.销售数量,Sp.商品编号,Sp.商品名称,Sp.规格型号,Sp.单价; From Zgjk,Xs,Sp; Where Sp.商品编号=Xs.商品编号 AND Zgjk.职工号=Xs.职工号 AND Zgjk.职工号=This.Value ; Into Cursor temptable Where 部门=This.Value Into A
6、rray X&统计部门人数,并将结果放入内存变量x Thisform.Text1.Value=X(1)&将数组的值写入文本框 Thisform.Label1.Caption=This.Value+部门共有 &Value的值为家电、服装或文具,图860例819运行的结果,(4)以“L8-16.SCX”为文件名保存表单。 (5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图860所示。,微调控件(Spinner)用于接受给定范围内的数值输入。它既可以用键盘输入,也可以单击该控件的上下箭头按钮来增减当前值。微调控件可以与数值型变量和字段绑定 。 1计时器常用属性(见下表),8.3.10微调控件
7、,2选项按钮组常用事件 (1)InteractivateChange:微调控件值发生改变时引发。 (2)DownClick:单击向下箭头按钮时引发。 (3)UpClick:单击向上箭头按钮时引发。 3应用举例,【例820】设计一个图861所示表单,要求如下: 改变3个微调控件的值,然后单击“更新”按钮,则改变形状控件的颜色和形状;若3个微调控件的值分别为255、0、0,形状控件为红色的正方形;若3个微调控件的值分别为0、0、255,形状控件为蓝色的圆形。,(1)设计界面 创建一个表单,并在表单上添加1个形状控件Shape1、3个微调控件Spinner1、Spinner2和Spinner3,1个
8、命令按钮Command1,如图861所示。,(2)设置对象属性 设置各对象的属性见下表。,(3)编写事件代码 命令按钮Command1的Click事件代码如下: R=Thisform.Spinner1.Value G=Thisform.Spinner2.Value B=Thisform.Spinner3.Value Thisform.Shape1.Curvature=(R+G+B)/3*99/255 Thisform.Shape1.BackColor=RGB(R,G,B) If R=255 and G=0 and B=0 Thisform.Shape1.Curvature=0&形状控件为正方形
9、 Thisform.Shape1.BackColor=RGB(R,G,B) Endif If R=0 and G=0 and B=255 Thisform.Shape1.Curvature=99&形状控件为蓝色的圆形 Thisform.Shape1.BackColor=RGB(R,G,B) ENDIF Thisform.refresh,图861例820运行的结果,(4)以“形色更新.SCX”为文件名保存表单。 (5)单击“常用”工具栏中的“运行”按钮 ,表单运行结果如图861所示。,计时器(Timer)控件像一个闹钟,它以一定的时间间隔重复执行某种操作。当达到规定的时间间隔时,系统自动触发Ti
10、mer事件。 在表单设计的过程中,计时器控件可见;表单运行时,计时器控件自动隐藏。 1计时器常用属性(见下表),8.3.11 计时器,2计时器常用事件 Timer:达到Interval设置计时间隔即触发。,分析:使用计时器控件Timer,将该控件的Interval属性设置为500,即每0.5秒触发一次计时器控件的Timer事件(显示一次系统时间);将计时器控件的Interval属性设置为0将停止触发Timer事件。 操作步骤如下: (1)设计界面 创建一个表单,并在表单上添加两个标签Label1,Label2;三命令按钮Command1,Command2,Command3和一个计时器控件Tim
11、er1。,【例821】设计一个如图862所示的表单,具体要求如下: 1)表单名为Timer,表单标题为“时钟”,表单运行时自动显示系统的当前时间; 2)要求显示时间的标签控件Label1在表单中居中,标签文本对齐方式为居中; 3)单击“暂停”命令按钮(Command1)时,时钟停止; 4)单击“继续”命令按钮(Command2)时,时钟继续显示系统的当前时间; 5)单击“退出”命令按钮(Command3)时,关闭表单。,(2)设置对象属性 在“属性”窗口中,分别设置各对象的属性值见下表。,(3)编写事件代码 1)双击“暂停”按钮,打开代码编辑窗口,输入Click事件代码如下: Thisform
12、.Timer1.Interval=0 2)双击“继续”按钮,打开代码编辑窗口,输入Click事件代码如下: Thisform.Timer1.Interval=500 3)双击“退出”按钮,打开代码编辑窗口,输入Click事件代码如下: Thisform.Release 4)双击计时器控件timer1,打开代码编辑窗口,输入timer事件代码如下: Thisform.Label2.Caption=Time(),图860例817运行的结果,(4)以“时钟.SCX”为文件名保存表单。 (5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图860所示。,1容器的特性 容器(Container)可包
13、含除表单和表单集之外多个不同类型的对象。 要向容器中添加对象,必须先激活容器。具体操作方法是:右击容器,在弹出的快捷菜单中选择“编辑”命令,使容器处于编辑状态,此时添加的对象才会到容器中。如果没有激活容器而添加对象,实际上对象是添加到表单上而不是容器中。推而广之,容器类的对象,若要编辑其中的对象,都先激活它们,使其进入编辑状态。 2容器常用属性 容器对象常用属性见下表:,8.3.12容器,【例822】建立如图864所示的表单,用于调查职工的情况。单击“统计”按钮,将该职工的情况显示于编辑框中。 操作步骤如下: (1)设计界面 创建一个表单,并在表单上添加如图861所示的控件。其中“爱好”的3个
14、复选框(“体育”、“音乐”和“美术”)是置于容器Container1中。 (2)设置对象属性 在“属性”窗口中,分别设置各对象的属性值,见表838。,2)命令按钮Command1的Click事件代码如下: str1=姓名:+Alltrim(Thisform.Text1.value) &累加连接姓名字符串 str1=str1+,性别:+Alltrim(Thisform.OptionGroup1.Value) &累加连接性别字符串 str1=str1+,年龄:+Str(Thisform.Spinner1.value,3)&累加连接年龄字符串 With Thisform.Container1&可用W
15、ithEndwith语句设置多个属性值 If .Check1.Value=1 or .Check2.Value=1 or .Check3.Value=1 str1=str1+,爱好: Endif If .Check1.Value=1&体育 str1=str1+.Check1.Caption+、 Endif If .Check2.Value=1&音乐 str1=str1+.Check2.Caption+、 Endif If .Check3.Value=1&美术 str1=str1+.Check3.Caption+、 Endif Endwith Thisform.Edit1.Value=Left(
16、str1,Len(str1)-2)+。 &删除最后一个顿号,并添加句号,图864例822运行的结果,(4)以“L8-22.SCX”为文件名保存表单。 (5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图864所示。,表格(Grid)是一种按行与列显示数据的容器对象,其外观与Browse窗口相似。表格是一种多重容器,一个表格由若干个列对象(Column)组成,每个列对象包含一个列标头对象(Header)和若干个列控件。表格、列、列标头和列控件都有属于自己的属性、事件和方法。 1表格的组成 (1)表格(Grid):容器对象,由若干个列对象组成。 (2)列(Column):也是容器对象,由列标
17、头和列控件组成。 (3)列标头(Header):默认值为数据库表、自由表和视图中的字段名或字段标题。 (4)列控件:默认值为文本框(Text1),允许修改为与该控件字段类型相容的其他控件。例如:逻辑型字段可用复选框,数值型字段可用微调控件。,8.3.13表格,2表格及其内部所含对象的常用属性,3表格常用事件 (1)Click:单击表格时引发。 (2)InteractivateChange:表格的值发生改变时引发。 4表格的编辑 (1)改变列数 (2)增删表格列 (3)调整表格的行高或列宽 1)通过属性窗口调整行高或列宽 2)手工调整行高或列宽 5创建表格对象 在设计过程中,一般先在表单上创建一
18、个表格,然后再用“表格生成器”设置属性,从而得到所需的表格。,6应用举例,【例824】设计一个表单,用于浏览职工和销售业绩。表单上包含两个表格,一个表格显示职工的职工号和姓名,另一个表格显示该职工的销售情况。,操作步骤如下: (1)设计界面 1)创建一个表单,并在表单上添加一个标签Label1。 2)打开“数据环境”窗口,并添加职工简况表Zgjk.dbf和销售表Xs.dbf。 3)分别将“数据环境”窗口中的职工简况表Zgjk.dbf和销售表Xs.dbf的标题拖放到表单上,生成表格对象GrdZgjk和GrdXs。 (2)设置对象属性(见下表),(3)以“销售业绩一览表 .SCX”为文件名保存表单
19、。 (4)单击“常用”工具栏中的“运行”按钮,表单运行结果如右图所示。 鼠标单击左表格中任意一个职工,右表格即显示该职工的销售情况,从而实现两表同步浏览。,操作步骤如下: (1)设计界面 1)创建一个表单,并在表单上添加一个标签Label1和一个组合框Combo1。 2)打开“数据环境”窗口,并添加职工简况表Zgjk.dbf和销售表Xs.dbf。 3)分别将“数据环境”窗口中的销售表Xs.dbf的标题拖放到表单上,生成表格对象GrdXs。,【例825】设计一个如图870所示的表单,用于浏览职工和销售业绩。表单上包含一个组合框和一个表格。在组合框中选择一个职工的姓名,即在表格中显示该职工的销售情
20、况(包括职工号、商品编号和销售数量)。,图868“表格生成器”的“表格项”选项卡,(2)设置对象属性 1)使用“生成器”设置对象的属性 右击组合框,在弹出的快捷菜单中选择“生成器”命令,打开“组合框生成器”对话框“列表项”选项卡,在“数据库和表”的列表框中,选择销售表Zgjk.dbf,将“姓名”和“职工号”字段添加到“选定字段”列表框中,并调整两者的顺序,如图868所示。,单击“确定”按钮,关闭“组合框生成器”。 右击表格,在弹出的快捷菜单中选择“生成器”命令,打开“表格生成器”对话框,选择“关系”选项卡,可以看到两个表已按“职工号”字段建立了一对多联系,Zgjk.dbf为父表,Xs.dbf为
21、子表。如果在数据库中两个表没有建立关联,可以在此选项卡中建立如图869所示联系。,图869“表格生成器”的“关系”选项卡,2)设置对象属性(见下表),(3)以“L8-25.SCX”为文件名保存表单。 (4)单击“常用”工具栏中的“运行”按钮,表单运行结果如图870所示。,图870例825运行的结果,页框(PageFrame)是包含页面(Page)的容器,每个页面在页框中均以选项卡的形式出现。页面是类似于表单的容器,可以包含与表单一样的对象。 1页框的创建 (1)在“表单设计器”中,单击“表单控件”工具栏中的“页框”按钮,然后在表单上单击或拖动,即创建一个含默认的2个页面(Page1和Page2
22、)的页框(PageFrame1)。 (2)向页面添加控件 1)右击页框,在弹出的快捷菜单中选择“编辑”命令,使页框处于编辑状态。 2)单击要添加控件的页面的标签,使之成为活动页面。 3)在“表单控件”工具栏中单击所需的控件按钮,然后单击页面,将其添加到活动页面上。 2页框常用属性(见表844),8.3.14页框,操作步骤如下: (1)设计界面 1)创建一个表单,并在表单上添加一个页框Pageframe1,该页框上包含默认的两个页面Page1和Page2。 2)打开“数据环境”窗口,并添加职工简况表Zgjk.dbf和销售表Xs.dbf。 3)激活页框。即右击容器,在弹出的快捷菜单中选择“编辑”命
23、令,使容器处于编辑状态。 4)选择页面Page1,将“数据环境”窗口中的职工简况表Zgjk.dbf的标题拖放到Page1上;选择页面Page2,将“数据环境”窗口中的销售表Xs.dbf的标题拖放到Page2上。,【例826】设计一个如图872所示的表单,分别用于浏览职工简况和销售业绩。表单上有一个包含两个页面的页框。第1页面中的表格显示职工简况信息,第2页面中的表格显示职工销售业绩。,(3)以“L8-26.SCX”为文件名保存表单。 (4)单击“常用”工具栏中的“运行”按钮,表单运行结果如图872所示。,(2)设置对象属性(见下表),图872例826运行的结果,【例827】设计一个包含两个选项
24、卡的表单,用于查询职工的信息,如图873所示。第1选项卡为“条件”选项卡,用于设置出生日期;第2选项卡为“输出”选项卡,用于设置输出的字段。单击表单上“确认”按钮,将根据在两个选项卡中所设置的参数查询职工的记录数据;单击表单上“取消”按钮,则关闭对话框。,图873“查询”对话框“条件”选项卡,操作步骤如下: (1)设计界面 1)创建一个表单,并在表单上添加一个页框Pageframe1和两个命令按钮Command1和Command2,该页框上包含默认的两个页面Page1和Page2。 2)打开“数据环境”窗口,并添加职工简况表Zgjk.dbf。 3)激活页框,选择页面Page1;或者在“属性”窗
25、口的对象框中,选择页面Page1。在其中添加1个选项按钮组、2个标签和4个文本框。 4)选择页面Page2,在其中添加2个列表框、2个标签和2个命令按钮。 (2)设置对象属性(见下表),(3)编写事件代码 1)Page1中“所有学生”选项按钮Option1的Click事件的代码如下: * This.parent.parent即Thisform.Pageframe1.Page1 This.parent.parent.Text1.Enabled=.F. &该文本框失效 This.parent.parent.Text2.Enabled=.F. This.parent.parent.Text3.Ena
26、bled=.F. This.parent.parent.Text4.Enabled=.F. 2)Page1中“在之前”选项按钮Option2的Click事件的代码如下: This.parent.parent.Text1.Enabled=.T. &该文本框有效 This.parent.parent.Text2.Enabled=.F. This.parent.parent.Text3.Enabled=.F. This.parent.parent.Text4.Enabled=.F.,3)Page1中“在之后”选项按钮Option3的Click事件的代码如下: This.parent.parent.T
27、ext1.Enabled=.F. This.parent.parent.Text2.Enabled=.T. This.parent.parent.Text3.Enabled=.F. This.parent.parent.Text4.Enabled=.F. 4)Page1中“在之间”选项按钮Option4的Click事件的代码如下: This.parent.parent.Text1.Enabled=.F. This.parent.parent.Text2.Enabled=.F. This.parent.parent.Text3.Enabled=.T. This.parent.parent.Tex
28、t4.Enabled=.T.,5)Page2中“添加”命令按钮的Click事件的代码如下: FOR i=1 to This.parent.List1.ListCount &历遍列表框List1中所有选项 IF This.parent.List1.Selected(i) &若列表框中第i个选项被选中 This.parent.List2.AddItem(This.parent.List1.List(i) &将选中对象添加到右边的列表框List2中 ENDIF ENDFOR 6)Page2中“移去”命令按钮的Click事件的代码如下: FOR i=1 to This.parent.List2.Lis
29、tCount IF This.parent.List2.Selected(i) This.parent.List2.RemoveItem(i) &将选中对象移去 ENDIF ENDFOR,6)Page2中“移去”命令按钮的Click事件的代码如下: FOR i=1 to This.parent.List2.ListCount IF This.parent.List2.Selected(i) This.parent.List2.RemoveItem(i) &将选中对象移去 ENDIF ENDFOR,7)Form1中“确认”命令按钮Command2的Click事件的代码如下: *以下程序段生成SE
30、LECT-SQL语句的条件表达式的字符串 *即where 子句中的条件 cond= .AND.出生日期CTOD(ThisForm.Pageframe1.Page1.Text4.Value) ENDCASE,*以下程序段生成SELECT-SQL语句的查询结果输出项字符串 *即select 子句中的 items= IF ThisForm.Pageframe1.Page2.List2.ListCount=0 items=*&List2为空,则默认全部字段 ELSE FOR i=1 to ThisForm.Pageframe1.Page2.List2.ListCount items=items+Thi
31、sForm.Pageframe1.Page2.List2.List(i)+, ENDFOR items=substr(items,1,LEN(items)-1) &删除最后一个逗号 ENDIF IF cond= SELECT &items FROM Zgjk &宏替换出查询结果输出项 ELSE SELECT &items FROM Zgjk WHERE &cond &宏替换出输出项和条件 ENDIF,图874“查询”对话框“输出”选项卡,8)Form1中“取消”命令按钮Command1的Click事件的代码如下: ThisForm.Release&释放表单 (4)以“L8-27.SCX”为文件
32、名保存表单。 (5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图869和图874所示。,表单集(Formset)是包含一个或若干个表单(Form)的容器。 1表单集的特点 (1)可以同时显示或隐藏表单集中的全部表单。 (2)以可视化的方式调整表单的大小和位置。 (3)表单集及其所包含的表单都存放在一个.SCX文件中。 (4)表单集中的表单共享一个数据环境。 (5)运行表单时,它所包含的表单都被加载。 2表单集的基本操作 表单集的创建与删除和其他对象的创建与删除不同。在“表单控件”工具栏中没有表单集控件,表单集的创建与删除是使用“表单”菜单中相应的命令来实现的。而表单菜单只有在打开“表单
33、设计器”后才出现。,8.3.15表单集,(1)创建表单集 1)创建或打开一个将包含于表单集中的表单,如表单Form1。 2)选择“表单”菜单中的“创建表单集”命令,即创建了一个表单集Formset1。在“属性”窗口的“对象框”中,可看到表单Form1处于表单集Formset1的下一层。 (2)向表单集添加表单 选择“表单”菜单中的“添加新表单”命令,即向表单集Formset1添加一个新表单Form2。所添加的是新表单,而不是已存在的表单。 (3)删除表单集中的表单 1)选定要删除的表单。 2)选择“表单”菜单中的“移除表单”命令。 (4)删除表单集 当表单集中只剩余一个表单时,表单集才可以被删
34、除。此时,选择“表单”菜单中的“移除表单集”命令,即删除表单集。表单集删除后表单仍存在。,(5)运行表单集 运行表单集与运行表单的方法一样。 (6)释放表单集 1)使用命令:Release ThisFormset 2)表单集随着最后一个表单的释放而自动释放,此时表单集的AutoRelease属性值为.T.。 3应用举例,【例823】创建一个含有两个子表单的表单集,要求如下: 1)将子表单的标题分别命名为“左表单”和“右表单”。 2)分别向两个子表单添加一个标签和一个命令按钮,并向左表单添加一个“退出”命令按钮和计时器控件。 3)将左表单中的命令按钮的标题设置为“显示右表单”,将右表单中的命令按钮的标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川绵阳市盐亭国有投资管理有限公司招聘管理岗位和业务岗位10人备考题库含答案详解(精练)
- 2026广东东莞市投资促进局招聘编外聘用人员1人备考题库附答案详解(b卷)
- 2026年国家机关事务管理局所属事业单位招聘备考题库(17人)带答案详解(完整版)
- 2026江苏苏州浒墅关实验幼儿园教育集团招聘1人备考题库含答案详解(精练)
- 2026浙江温州市乐清市龙西乡卫生院招聘1人备考题库含答案详解(巩固)
- 2026江苏徐州物资市场有限公司招聘6人备考题库及一套完整答案详解
- 海信集团2026届全球校园招聘备考题库及完整答案详解1套
- 2026四川成都市简阳市残疾人综合服务中心招聘编外人员1人备考题库附答案详解(达标题)
- 平安理财2027届暑期实习生招聘备考题库及答案详解(夺冠系列)
- 2026黑龙江哈尔滨丁香人才周(春季)事业单位引才招聘1222人备考题库及答案详解(夺冠)
- 项目部财务管理办法
- 一线教师课题研究 如何做课题
- 重点专题2-2 排列与组合常考题型综合(解析版)- 【重难点突破】2024-2025学年高二下·人教A版·热点题型专练 -1
- 建筑材料价格波动合同范例
- 《《孔空声乐练习曲50首》(高音卷)在美声学习中的运用及价值》
- 设备使用协议书模板
- 水利水电工程建设用地设计标准(征求意见稿)
- 页岩气及其成藏特征
- 《公路装配式混凝土桥梁设计规范》(JTG-T3365-05-2022)
- python程序设计 课件全套 董付国 第1-12章 初识python-程序设计案例分析
- 高考语文复习:文言文复习教考衔接
评论
0/150
提交评论