1、第八章第八章 表单设计及其应用表单设计及其应用2023-1-31第八章第八章 表单设计及其应用表单设计及其应用主要内容主要内容:2023-1-318.1 8.1 创建表单创建表单1.1.使用表单设计器创建表单使用表单设计器创建表单(1)(1)菜单方式菜单方式(2)(2)命令方式命令方式 CREATE FORM CREATE FORM 表单文件名表单文件名2.2.使用表单向导创建表单使用表单向导创建表单3.3.保存、修改和运行表单保存、修改和运行表单修改:修改:MODI FORM MODI FORM 表单文件名表单文件名运行:运行:DO FORM DO FORM 表单文件名表单文件名2023-1
2、-311.1.表单设计器环境表单设计器环境2.2.表单控件工具栏表单控件工具栏3.3.属性窗口属性窗口8.2 8.2 表单设计器表单设计器2023-1-311.数据环境设计器数据环境设计器(1)(1)选择显示选择显示|数据环境命令数据环境命令(2)(2)右击表单界面右击表单界面,选数据环境选数据环境8.3 8.3 表单的数据环境表单的数据环境2.2.数据环境中数据表和字段的处理方法数据环境中数据表和字段的处理方法2023-1-318.4 8.4 表单及控件设计表单及控件设计8.4.18.4.1无控件表单设计无控件表单设计8.4.28.4.2标签控件标签控件8.4.38.4.3文本框控件文本框控
3、件8.4.48.4.4命令按钮控件命令按钮控件8.4.58.4.5组合框控件组合框控件8.4.68.4.6列表框控件列表框控件8.4.78.4.7复选框控件复选框控件8.4.88.4.8选项按钮组控件选项按钮组控件8.4.98.4.9计时器控件设计计时器控件设计8.4.108.4.10编辑框控件编辑框控件8.4.118.4.11微调控件微调控件8.4.128.4.12命令按钮组控件命令按钮组控件8.4.138.4.13表格控件表格控件8.4.148.4.14页框控件页框控件8.4.158.4.15图像控件图像控件8.4.88.4.8线条和形状控件线条和形状控件讲述内容讲述内容:2023-1-3
4、1 例例11 :设计一个表单,实现标签文字边移:设计一个表单,实现标签文字边移动边变色。动边变色。讲述内容:无控件表单讲述内容:无控件表单 标签控件标签控件 计时器控件计时器控件 计时器计时器timertimer事件事件 设计步骤如下:设计步骤如下:我们通过以下实例来介绍各种控件我们通过以下实例来介绍各种控件:2023-1-31 步骤步骤11设计一个名为设计一个名为“移动变色移动变色”的无控件表单的无控件表单:设计一个无控件的表单设计一个无控件的表单基本属性如下:基本属性如下:CAPTIONCAPTION:移动变色:移动变色TOPTOP:7777LEFTLEFT:2020HEIGHTHEIGH
5、T:177177WIDTHWIDTH:330330AUTOCENTERAUTOCENTER:.T.T.Alwaysontop:.t.Alwaysontop:.t.2023-1-31 标签控件是按一定格式显示在表单上的文本信息标签控件是按一定格式显示在表单上的文本信息,用来用来显示表单中各种说明和提示。标签的主要属性有显示表单中各种说明和提示。标签的主要属性有:标签的大标签的大小小,颜色颜色,以及显示信息的内容以及显示信息的内容,字体大小字体大小,风格等。风格等。步骤步骤22在无控件表单上设计一标签控件:在无控件表单上设计一标签控件:主要属性如下:主要属性如下:CAPTIONCAPTION:同学
6、们再见:同学们再见TOPTOP:96 LEFT96 LEFT:3636FONTSIZEFONTSIZE:3636FORECOLORFORECOLOR:红:红BACKSTYLE:0-BACKSTYLE:0-透明透明2023-1-31 计时器控件主要利用系统时钟来控制某计时器控件主要利用系统时钟来控制某些具有规律性的周期任务的定时操作。些具有规律性的周期任务的定时操作。计时器控件不能单独使用,必须与表单计时器控件不能单独使用,必须与表单等一起使用。等一起使用。它的主要属性:它的主要属性:enabled,intervalenabled,intervalEnabledEnabled用于控制计时器的打开
7、与关闭。用于控制计时器的打开与关闭。IntervalInterval用于定义两次计时器事件触发的用于定义两次计时器事件触发的时间间隔时间间隔,单位为毫秒。单位为毫秒。2023-1-31标签标签计时器计时器计时器的主要属计时器的主要属性如下:性如下:Enabled:.t.Enabled:.t.Interval:500Interval:500 步骤步骤33在表单上设计一计时器控件:在表单上设计一计时器控件:2023-1-31 步骤步骤4 4 计时器计时器timertimer事件代码事件代码:a=int(rand()*256)b=int(rand()*256)c=int(rand()*256)thi
8、sform.lbl1.forecolor=rgb(a,b,c)if thisform.lbl1.left=100thisform.label1.fontsize=10elsethisform.label1.fontsize=thisform.label1.fontsize+5endif 2023-1-31 例例55:文字变化:文字变化 讲述内容:列表框讲述内容:列表框 组合框组合框 复选框复选框 选项按钮组选项按钮组设计结果如下:设计结果如下:2023-1-311.1.列表框(列表框(listlist)主要用来显示选择项,用户可以从中选择一个主要用来显示选择项,用户可以从中选择一个或多个数据项
9、。或多个数据项。主要属性:主要属性:Rowsource Rowsource Rowsourcetype Rowsourcetype 当当rowsourcetype rowsourcetype 设置值为设置值为1,1,值源类型为值值源类型为值RowsourceRowsource写出具体值,之间逗号相隔写出具体值,之间逗号相隔.当当rowsourcetype rowsourcetype 设置值为设置值为6,6,值源类型为字值源类型为字段段,rowsource,rowsource选择所需字段选择所需字段.2023-1-31 步骤步骤11新建表单,画出列表框(新建表单,画出列表框(list1)list
10、1),并设置如下属性:并设置如下属性:Rowsourcetype 1 Rowsourcetype 1 值值 Rowsource Rowsource 黑体黑体,宋体宋体,华文行楷华文行楷,隶书隶书 (注意逗号注意逗号)运行结果如右图:运行结果如右图:2023-1-312.2.组合框组合框 组合框用于在列表框中选取数据并显示在编辑组合框用于在列表框中选取数据并显示在编辑窗口,它有两种形式窗口,它有两种形式:下拉列表框,下拉组合框。下拉列表框,下拉组合框。主要属性:主要属性:style style rowsource rowsource rowsourcetype rowsourcetype lis
11、tindex listindex style style 为为0 0时表示下拉组合框,时表示下拉组合框,为为2 2时表示下拉列表框。时表示下拉列表框。下拉组合框可手写,下拉列表框只能选择。下拉组合框可手写,下拉列表框只能选择。rowsourcetype rowsourcetype 和和 rowsourcerowsource同列表框同列表框 Listindex Listindex 指定索引值。指定索引值。2023-1-31 步骤步骤2 2 画出组合框,并设置如下属性:画出组合框,并设置如下属性:style 0style 0 Rowsourcetype 1 Rowsourcetype 1 值值 R
12、owsource Rowsource 红红,黄黄,绿绿,黑黑 (注意逗号注意逗号)输入输入form1form1的的initinit事件代码(即初始化事件)为:事件代码(即初始化事件)为:bo1.listindex=bo1.listindex=1运行结果如右图:运行结果如右图:注意注意stypestype属性属性2023-1-313.3.复选框复选框 可以通过单击改变它的状态。可以通过单击改变它的状态。复选框的主要属性是复选框的主要属性是:caption caption value value controlsource controlsource Caption Caption 显示在复选框边
13、上的文本显示在复选框边上的文本当当valuevalue值为值为0 0时时,表示没有选择复选框表示没有选择复选框,当当valuevalue值为值为1 1时时,表示选中了复选框表示选中了复选框,当当valuevalue值为值为2 2时时,复选框显示灰色。复选框显示灰色。2023-1-31 步骤步骤3 3 画出画出3 3个复选框,个复选框,并分别设置并分别设置Check1Check1的的captioncaption属性为:下划线属性为:下划线Check2Check2的的captioncaption属性为:倾斜属性为:倾斜Check3Check3的的captioncaption属性为:加粗属性为:加粗
14、 运行结果如下:运行结果如下:2023-1-314.4.选项按钮组(选项按钮组(optiongroup)optiongroup)它可以包含多个选项,通常用于从多项选择它可以包含多个选项,通常用于从多项选择中选择其一。中选择其一。主要属性:主要属性:buttoncount buttoncount 指定按钮个数指定按钮个数 value value 选择第几个按钮选择第几个按钮 按钮组中按钮按钮组中按钮(option)(option)的主要属性:的主要属性:caption caption 显示在按钮边上的文本显示在按钮边上的文本2023-1-31 步骤步骤44画出画出1 1个选项按钮组个选项按钮组,
15、设置按钮个数为设置按钮个数为:4:4个个option1option1的的captioncaption属性为:属性为:1010option2option2的的captioncaption属性为:属性为:2020option3option3的的captioncaption属性为:属性为:3030option3option3的的captioncaption属性为:属性为:4040 注意:注意:选项按钮选项按钮组为容器类控件,组为容器类控件,右键右键-编辑去设编辑去设置按钮的具体属置按钮的具体属性。性。2023-1-31 步骤步骤55设置设置form1form1的属性如下:的属性如下:caption
16、caption 文化变化文化变化 autocenter .t.autocenter .t.步骤步骤66表单上画一标签,并设置如下属性:表单上画一标签,并设置如下属性:caption caption 文字变化文字变化 autosize .t.autosize .t.fontsize 24 fontsize 24最后设计界面最后设计界面如右图:如右图:2023-1-31 步骤步骤7 7 编写列表框编写列表框(list1)(list1)的单击事件的单击事件(click)(click)代码代码:do case case this.value=黑体黑体 thisform.label1.fontname=
17、黑体黑体 case this.value=宋体宋体 thisform.label1.fontname=宋体宋体 case this.value=华文行楷华文行楷 thisform.label1.fontname=华文行楷华文行楷 case this.value=隶书隶书 thisform.label1.fontname=隶书隶书endcase2023-1-31 步骤步骤8 8 编写组合框编写组合框(combo1)(combo1)的的clickclick事件代码事件代码:do case case this.value=红红 thisform.label1.forecolor=rgb(255,0,
18、0)case this.value=黄黄 thisform.label1.forecolor=rgb(255,255,0)case this.value=绿绿 thisform.label1.forecolor=rgb(0,255,0)case this.value=黑黑 thisform.label1.forecolor=rgb(0,0,0)endcase2023-1-31 步骤步骤9 9 编写复选框编写复选框(check1)(check1)的的clickclick事件代码事件代码:IF THIS.VALUE=1 THISFORM.LABEL1.FONTBOLD=.T.ELSE THISFO
19、RM.LABEL1.FONTBOLD=.F.ENDIF复选框复选框2 2和和3 3提示提示:倾斜倾斜:fontitalic:fontitalic 加粗加粗:fontbold:fontbold2023-1-31 步骤步骤10 10 编写选项按钮组的编写选项按钮组的clickclick事件代码事件代码:do case case this.value=1 thisform.label1.fontsize=10 case this.value=2 thisform.label1.fontsize=20 case this.value=3 thisform.label1.fontsize=30 case
20、 this.value=4 thisform.label1.fontsize=40endcase文字变化例题结束文字变化例题结束,共共1010步骤步骤!2023-1-31课堂练习课堂练习:文件名为文件名为My_form11,My_form11,有一组合框,有一组合框,rowsourcetype=1rowsourcetype=1 rowsource=rowsource=农电农电,农发农发 ,植保植保有一文本框。有一文本框。功能功能:当在组合框中选定一专业后,立刻在文当在组合框中选定一专业后,立刻在文本框中显示此专业全称,农电为本框中显示此专业全称,农电为“农业电气与自农业电气与自动化动化”,农发
21、为,农发为“农村区域发展农村区域发展”,植保为,植保为“植植物保护物保护”。2023-1-31 可在微调控件框中输入一个值,或通过按钮选择一个可在微调控件框中输入一个值,或通过按钮选择一个值,其作用是确保数据的使用范围。一般情况下,它主要值,其作用是确保数据的使用范围。一般情况下,它主要用于数值型数据的输入。用于数值型数据的输入。属性主要包括:属性主要包括:Keyboardhighvalue 输入的最大值。输入的最大值。Keyboardlowvalue 输入的最小值。输入的最小值。Increment 每次单击按钮的增减值。每次单击按钮的增减值。Value 初始值。初始值。Spinnerhigh
22、value 单击按钮所能达到的最大值单击按钮所能达到的最大值 Spinnerlowvalue 单击按钮所能达到的最小值单击按钮所能达到的最小值2023-1-31 例例66加减乘除计算加减乘除计算设计一个名为设计一个名为 my_formamy_forma的表单如图所示的表单如图所示:表单上有表单上有一个标签:一个标签:namename为为lala,红色,红色,2020号字,号字,autosizeautosize为为.t.t.两个微调控件两个微调控件:namename分别为分别为s1s1,s2;s2;最小值为最小值为1 1,最大值,最大值为为100100,增减量为,增减量为1 1,初始值为,初始值
23、为1010。一个单选按钮组:一个单选按钮组:4 4个按钮个按钮:CaptionCaption分别为加,减,乘,除。分别为加,减,乘,除。2023-1-31提示:提示:代码写到单选按钮组的代码写到单选按钮组的interactivechange事件或事件或click事件中。事件中。代码提示:代码提示:thisform.la.caption=str(thisform.s1.value+thisform.s2.value)功能:功能:lala上显示上显示s1s1和和s2s2的加或减或乘或除的值。的加或减或乘或除的值。2023-1-31 例例77累加及阶层计算累加及阶层计算设计一个名为设计一个名为 my
24、_formbmy_formb的表单如图所示的表单如图所示:1 1个文本框名字为个文本框名字为txt1txt12 2个微调名字分别为个微调名字分别为sp1,sp2sp1,sp2,sp1sp1最大值为最大值为5050,最小值,最小值为为1 1,sp2sp2最大值为最大值为9090,最小值为,最小值为5151,增加或减少量为,增加或减少量为2 22 2个复选框个复选框名字分别为名字分别为chk1,chk2chk1,chk2;初值;初值value=0value=02023-1-31表单功能为:表单功能为:用微调选择数值进行运算,单击求阶层,用微调选择数值进行运算,单击求阶层,求出求出sp1sp1至至s
25、p2sp2中数值之间的阶层值存放在中数值之间的阶层值存放在p p变量中,同变量中,同时显示在时显示在txt1txt1中,如中,如sp1sp1中中5656,sp2sp2中中8181,则求,则求p=56p=56*5757*5858*.*8181单击求累加,求出单击求累加,求出sp1sp1至至sp2sp2中数值之间的累加和存放在中数值之间的累加和存放在s s变量中,同时显示在变量中,同时显示在txt1txt1中,如中,如sp1sp1中中6060,sp2sp2中中9090,则求则求s=60+61+62+.+90s=60+61+62+.+90提示:提示:循环用循环用For For 语句,循环变量用语句,
26、循环变量用i i。代码写到复选代码写到复选框的框的clickclick事件中。事件中。2023-1-31求阶乘求阶乘p=1for i=thisform.sp1.value to thisform.sp2.value p=p*iendforthisform.txt1.value=p 求累加和求累加和s=0for i=thisform.sp1.value to thisform.sp2.value s=s+iEndforthisform.txt1.value=p代码提示:代码提示:2023-1-31 例例88查阅学生成绩情况查阅学生成绩情况 所学控件:表格所学控件:表格 计步骤如下:计步骤如下:(
27、1 1)新建表单,画一个标签控件,显示文字:)新建表单,画一个标签控件,显示文字:学生成绩情况,并自设计字体、字号等。学生成绩情况,并自设计字体、字号等。(2 2)指向表单空白处,按右键,进入数据环境)指向表单空白处,按右键,进入数据环境 填入学生、成绩、课程三个数据表。填入学生、成绩、课程三个数据表。并连线。并连线。2023-1-31(3 3)将三个数据表分别拖入表单中。)将三个数据表分别拖入表单中。(4 4)适应调整三个表格的宽度,运行。)适应调整三个表格的宽度,运行。运行结果如下:运行结果如下:2023-1-31 页框名字页框名字PageframePageframe 页框的主要属性页框的
28、主要属性 PagecountPagecount 页框中的每一页页框中的每一页:例如例如:pageframe1.page1:pageframe1.page1 例例:设计如下表单设计如下表单:有三页有三页:学生学生,成绩成绩,课程分别显示课程分别显示对应数据对应数据.2023-1-31编辑框与文本框一样,是用来输入和编辑数据的,但在编辑框与文本框一样,是用来输入和编辑数据的,但在编辑框中可以编辑备注字段的内容。编辑框中可以编辑备注字段的内容。1.1.右击表单右击表单数据环境数据环境-添入添入 学生学生.dbf.dbf2.2.对对text1text1设设controlsourcecontrolsou
29、rce为学生为学生.姓名姓名3 3对对edit1edit1设设controlsourcecontrolsource为学生为学生.简历简历主要方法主要方法:2023-1-31命令按扭组命令按扭组(commandgroup)(commandgroup)是包含一组命令按扭的容是包含一组命令按扭的容器器,其作用与命令按扭相同其作用与命令按扭相同.书例书例8.15(2118.15(211页页)ThisThis等价于等价于mandgroup1表示命令按扭组表示命令按扭组本身本身.Eof()Eof()当记录指针指向了第一条记录的上边时当记录指针指向了第一条记录的上边时,函数函数值为真值为真.判断文件是否到头
30、判断文件是否到头.bof()bof()当记录指针指向了最后一条记录的下边时当记录指针指向了最后一条记录的下边时,函函数值为真数值为真.判断文件是否结束判断文件是否结束.Skip 1 Skip 1 意思是指针向下移动一条意思是指针向下移动一条.Skip -1Skip -1意思是指针向上移动一条意思是指针向上移动一条.2023-1-31连线注意连线注意:默认名字:默认名字:imagen主要属性主要属性:1.picture 图片图片 2.stretch 填充方式填充方式 图像控件制作美景欣赏。制作美景欣赏。形状控件形状控件Curvature:指定形状控件的角的曲率。指定形状控件的角的曲率。099 Curvature=99Curvature=0Curvature=70 单击按钮单击按钮“正方形正方形”,将圆变成正方,将圆变成正方形,按钮的形,按钮的clickclick事件代码如何写事件代码如何写thisform.shape1.curvature=0thisform.shape1.curvature=02023-1-31本章结束本章结束,谢谢使用谢谢使用!