欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Visual FoxPro 6.0学习笔记十五

Visual FoxPro 6.0学习笔记十五

2025/4/6 8:26:54 来源:https://blog.csdn.net/Acxymy/article/details/146717313  浏览:    关键词:Visual FoxPro 6.0学习笔记十五

十五章表单设计(二)

一、选项按钮组应用

建立表单,使得单击选项按钮组可以选择字体,控制“字体演示示例”标签文字的字体格式。

(1)将表单的基本对象进行相应的设置

(2)填写Optiongroup1的Click事件代码

DO CASE
    CASE THISFORM.OPTIONGROUP1.VALUE=1
        THISFORM.LABEL1.FONTNAME="宋体"
    CASE THISFORM.OPTIONGROUP1.VALUE=2
        THISFORM.LABEL1.FONTNAME="黑体"
    CASE THISFORM.OPTIONGROUP1.VALUE=3
        THISFORM.LABEL1.FONTNAME="隶书"
    CASE THISFORM.OPTIONGROUP1.VALUE=4
        THISFORM.LABEL1.FONTNAME="华文彩云"
ENDCASE
THISFORM.REFRESH

运行结果为:

二、复选框应用

复选框与选项按钮组不同,往往允许从多个选项中同时选择多个或者一个都不选,被选中的选项前会出现一个“√”号,控制标签中的文字显示。

建立表单,使得勾选复选框可以选择不同的字体样式,控制“数据库程序设计”标签文字的字体格式。

(1)将表单的基本对象进行相应的设置

(2)填写复选框(Check1)的Click事件代码:

IF THIS.VALUE=1
    THIS.PARENT.LABEL1.FONTITALIC=.T.
ELSE
    THIS.PARENT.LABEL1.FONTITALIC=.F.
ENDIF

(3)以此类推完成其他复选框的代码:

IF THIS.VALUE=1
    THIS.PARENT.LABEL1.FONTBOLD=.T.
ELSE
    THIS.PARENT.LABEL1.FONTBOLD=.F.
ENDIF

IF THIS.VALUE=1
    THIS.PARENT.LABEL1.FONTUNDERLINE=.T.
ELSE
    THIS.PARENT.LABEL1.FONTUNDERLINE=.F.
ENDIF

运行结果为:

三、表格控件的应用

表格控件是一种容器对象,其外形与“浏览”窗口相似,按行和列的形式显示、编辑数据记录。

设计带有表格控件的表单,根据所选定专业实现对“STUDENT”表中学生基本信息的查询。

①首先在“表单设计器”窗口中,建立表单

②然后,在“属性”窗口完成表单上各个对象属性的设计

③最后,用鼠标双击选项按钮组Optiongroup1控件,打开代码编辑窗口,输入选项按钮组Optiongroup1的Click事件代码:

DO CASE
    CASE THISFORM.OPTIONGROUP1.VALUE=1
        THISFORM.GRID1.RECORDSOURCE=;
        "SELECT * FROM STUDENT.DBF WHERE STUDENT.专业='国际贸易' INTO CURSOR TEMP"
    CASE THISFORM.OPTIONGROUP1.VALUE=2
        THISFORM.GRID1.RECORDSOURCE=;
        "SELECT * FROM STUDENT.DBF WHERE STUDENT.专业='应用数学' INTO CURSOR TEMP"
    CASE THISFORM.OPTIONGROUP1.VALUE=3
        THISFORM.GRID1.RECORDSOURCE=;
        "SELECT * FROM STUDENT.DBF WHERE STUDENT.专业='英语' INTO CURSOR TEMP"
    CASE THISFORM.OPTIONGROUP1.VALUE=4
        THISFORM.GRID1.RECORDSOURCE=;
        "SELECT * FROM STUDENT.DBF WHERE STUDENT.专业='应用化学' INTO CURSOR TEMP"
ENDCASE
THISFORM.REFRESH

运行结果为:

四、页框控件的应用

设计表单时,若一个表单中需要处理的问题比较多,则可以将问题划分为多个子问题,每个子问题放在一个页面中,多个页面放到页框控件中。

设计表单,将员工的“基本信息查询”与“工资信息查询”分布在不同的页面中实现。

①启动“表单设计器”窗口,创建一个新表单,向表单中添加一个用于显示“员工信息查询”文字的标签控件对象

②单击“表单控件”工具栏中的“页框”按钮,在表单窗口的适当位置上单击,向表单中添加一个包含两个页面的页框控件对象并调整其大小。用鼠标右键单击页框控件,从弹出的快捷菜单中选择“编辑”命令。

③单击页框中的第一个页面(Page1),设置其Caption属性为“基本信息查询”;在Page1页面中添加相应的标签及选项按钮组Optiongroup1,将选项按钮组的ButtonCount属性设置为2,并依次设置各个选项按钮的Caption属性;仍然在Page1页面中添加两个文本框Text1和Text2,并设置Text1和Text2的Enable属性分别为.T.和.F.;鼠标单击“表格”控件工具按钮,在Page1中添加一个表格控件对象Grid1,并设置其RecordSourceType属性为4-SQL说明,指定表格的数据源是SELECT查询结果,ReadOnly属性为.T.,设置表格控件中的数据为只读。

④单击选择页框中的第二个页面(Page2),设置其Caption属性为“工资信息查询”,然后在其中添加一个标签、文本框Text1和一个表格控件Grid1,表格控件Grid1的RecordSourceType属性为4-SQL说明、ReadOnly属性为.T.

⑤最后,分别编写Page1和Page2页面的事件过程代码:

  • THISFORM.PAGEFRAME1.PAGE1的ACTIVATE事件(激活)代码:

THIS.GRID1.RECORDSOURCE=""&&清空表格

  • THISFORM.PAGEFRAME1.PAGE1.OPTIONGROUP1的INTERACTIVECHANGE事件(鼠标单击时产生)代码:

DO CASE
    CASE THIS.OPTION1.VALUE=1
        THISFORM.PAGEFRAME1.PAGE1.TEXT1.ENABLED=.T.
        THISFORM.PAGEFRAME1.PAGE1.TEXT2.SETFOCUS
        THISFORM.PAGEFRAME1.PAGE1.TEXT2.ENABLED=.F.
    CASE THIS.OPTION2.VALUE=1
        THISFORM.PAGEFRAME1.PAGE1.TEXT1.ENABLED=.F.
        THISFORM.PAGEFRAME1.PAGE1.TEXT2.ENABLED=.T.
        THISFORM.PAGEFRAME1.PAGE1.TEXT2.SETFOCUS
ENDCASE

  • THISFORM.PAGEFRAME1.PAGE1.TEXT1的INTERACTIVECHANGE事件(用键盘改变其值时产生)代码:

THISFORM.PAGEFRAME1.PAGE1.GRID1.RECORDSOURCE=""
THISFORM.PAGEFRAME1.PAGE1.GRID1.RECORDSOURCE=;
"SELECT * FROM 员工 WHERE ALLTRIM(员工.部门代码)=;
THISFORM.PAGEFRAME1.PAGE1.TEXT1.VALUE;
INTO CURSOR TEMP"&&控制表格控件的数据源

  • THISFORM.PAGEFRAME1.PAGE1.TEXT2的INTERACTIVECHANGE事件代码:

THISFORM.PAGEFRAME1.PAGE1.GRID1.RECORDSOURCE=""
THISFORM.PAGEFRAME1.PAGE1.GRID1.RECORDSOURCE=;
"SELECT * FROM 员工 WHERE ALLTRIM(员工.编号)=;
THISFORM.PAGEFRAME1.PAGE1.TEXT2.VALUE;
INTO CURSOR TEMP"&&控制表格控件的数据源

  • THISFORM.PAGEFRAME2.PAGE1的ACTIVATE事件(激活)代码:

THIS.GRID1.RECORDSOURCE=""&&清空表格

  • THISFORM.PAGEFRAME1.PAGE2.TEXT1的INTERACTIVECHANGE事件代码:

THISFORM.PAGEFRAME1.PAGE2.GRID1.RECORDSOURCE=""
THISFORM.PAGEFRAME1.PAGE2.GRID1.RECORDSOURCE=;
"SELECT * FROM 工资 WHERE ALLTRIM(工资.编号)=;
THISFORM.PAGEFRAME1.PAGE2.TEXT1.VALUE;
INTO CURSOR TEMP"&&控制表格控件的数据源

运行结果为:

(一个不明所以的说明:上面的代码不断句可以正常运行,断句首位空一格,按上面那种写法是运行不了的ORZ)

思考与练习

1.利用微调框控件,设计简易计算器表单。

(1)这里需要注意的是,在设置Spinner控件的Increment为0.1时,还需要将InputMask设置为9.9(9占位表示小数点前后分别有几位)

(2)选项按钮组的Click事件代码为:

DO CASE
    CASE THISFORM.OPTIONGROUP1.VALUE=1
        THISFORM.TEXT1.VALUE=THISFORM.SPINNER1.VALUE+THISFORM.SPINNER2.VALUE
    CASE THISFORM.OPTIONGROUP1.VALUE=2
        THISFORM.TEXT1.VALUE=THISFORM.SPINNER1.VALUE-THISFORM.SPINNER2.VALUE
    CASE THISFORM.OPTIONGROUP1.VALUE=3
        THISFORM.TEXT1.VALUE=THISFORM.SPINNER1.VALUE*THISFORM.SPINNER2.VALUE
    CASE THISFORM.OPTIONGROUP1.VALUE=4
        THISFORM.TEXT1.VALUE=THISFORM.SPINNER1.VALUE/THISFORM.SPINNER2.VALUE
ENDCASE
THISFORM.REFRESH

运行结果为:

2.用列表框控件显示STUDENT表中的专业名称,在列表框中选定专业,实现按专业统计学生的入学平均成绩。

(1)按照要求设置表单对象

(2)选中LIST1后单击右键,在快捷菜单中选择生成器,将需要出现在列表框中专业名称输入,单击确定。

(3)给列表框控件填写Click事件代码:

SELECT AVG(入学成绩) FROM STUDENT;
WHERE 专业=THISFORM.LIST1.VALUE INTO ARRAY A
THISFORM.TEXT1.VALUE=A(1)

运行结果为:

3.设计通过定时器控件控制“欢迎使用汽车管理系统”标签文字从右向左循环移动。

(1)按照要求设置表单对象

(2)设置计时器的时间间隔为100MS,双击计时器控件,输入代码:

if thisform.label1.left>thisform.width
    thisform.label1.left=0
else
    thisform.label1.left=thisform.label1.left+10
endif

这里文字从左到右移动的动态效果其实就是文字位置的变化,只需要控制文字在到达右边边框的位置时移动到左边即可。

运行结果为:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词