实验八常用控件类对象综合应用Word下载.docx

上传人:b****3 文档编号:16400230 上传时间:2022-11-23 格式:DOCX 页数:19 大小:763.87KB
下载 相关 举报
实验八常用控件类对象综合应用Word下载.docx_第1页
第1页 / 共19页
实验八常用控件类对象综合应用Word下载.docx_第2页
第2页 / 共19页
实验八常用控件类对象综合应用Word下载.docx_第3页
第3页 / 共19页
实验八常用控件类对象综合应用Word下载.docx_第4页
第4页 / 共19页
实验八常用控件类对象综合应用Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

实验八常用控件类对象综合应用Word下载.docx

《实验八常用控件类对象综合应用Word下载.docx》由会员分享,可在线阅读,更多相关《实验八常用控件类对象综合应用Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

实验八常用控件类对象综合应用Word下载.docx

同时c加1。

当c的值等于3时,显示“无权登陆”,同时将文本框设为无效,不允许输入。

3.属性设置。

表8.1对象属性设置

对象名

属性名

属性值

作用

form1

caption

口令验证

指定表单标题

label1

请输入口令

指定标签1提示文本

text1

passwordchar

*

文本框口令不可视

text1

selectonentry

.t.

选中文本框的文字

command1

退出

命令按钮1标题

4.编写代码。

表单form1的init事件代码:

publicc

c=0

&

c统计口令输入次数,每输入一次错误口令,c自动加1

命令按钮“退出”command1的click事件代码:

thisform.release

文本框text1的valid事件代码:

ifthis.value='

1234'

=messagebox('

口令正确,欢迎使用!

'

retu.t.

else

c=c+1

口令错误,请重输入!

这是第'

+str(c,1)+'

次输入!

retu.f.

ifc>

=3

无权登陆,请退出!

口令输入超过3次

thisform.text1.enabled=.f.

endif

thisform.refresh

5.调试运行界面如图8.2、8.3、8.4。

【例8.2】使用命令按钮设计一个调色板。

1.在表单上放置5个命令按钮,按下“红”按钮时,表单背景颜色为红色;

按下“黄”按钮时,表单背景颜色为黄色;

按下“蓝”按钮时,表单背景颜色为蓝色;

按下“白”按钮时,表单背景颜色为白色。

表单运行界面如图8.6所示。

图8.6“红色”按钮按下时运行界面图8.7表单设计界面

1.界面设计。

在“表单控件”工具栏上单击“命令按钮”控件,将command1-4拖至表单。

表单设计界面如图8.7所示。

主要为颜色属性设置,通过rgb函数不同取值改变表单背景颜色。

表8.2对象属性设置

调色板

command2

命令按钮2标题

command3

命令按钮3标题

command4

命令按钮4标题

4.事件代码。

命令按钮“红”command1的click事件代码:

thisform.backcolor=rgb(255,0,0)

通过rgb函数不同取值改变表单背景颜色

命令按钮“黄”command2的click事件代码:

thisform.backcolor=rgb(255,255,0)

命令按钮“蓝”command3的click事件代码:

thisform.backcolor=rgb(0,0,255)

命令按钮“白”command4的click事件代码:

thisform.backcolor=rgb(255,255,255)

5.调试运行界面如图8.6、8.7。

【例8.3】使用列表框实现数据互传。

1.表单上放置源数据列表list1、目标数据列表list2,list1与学生表的“姓名”字段绑定;

2.表单运行时,按下“添加一项”按钮时,在list2中添加一个学生“姓名”;

按下“全部添加”按钮时,将list1中的内容全部添加到list2中;

3.按下“移去一项”按钮时,将list2内容移去一项至list1;

按下“全部移去”按钮时,将list2内容全部移至list1。

表单运行界面如图8.8、8.9、8.10、8.11所示。

图8.8“添加一项”运行界面图8.9“全部添加”运行界面

图8.10“移去一项”运行界面图8.11“全部移去”运行界面

在数据环境中添加学生表。

在“表单控件”工具栏上单击“命令按钮”控件、“标签”控件、“列表框”控件,将command1-4、label1-2、list1-2拖至表单,list1的数据源与学生表的“姓名”字段绑定。

表单设计界面如图8.12所示。

图8.12表单设计界面

2.题目分析。

(1)本题主要利用列表框的additem、removeitem和clear三个方法。

(2)“添加一项”将list1内容移到list2,即list1的内容减少一项(removeitem),list2的内容增加一项(additem);

“移去一项”将list2的内容移到list1,list2减少一项(removetiem),list1增加一项(additem)。

(3)“全部添加”将list1内容全部移到list2,即list1全部清空(clear),list2内容为学生表的“姓名”,通过sacn/endscan循环将表的“姓名”全部加到list2;

(4)“全部移去”将list2内容全部移到list1,即list2全部清空(clear),list1内容为学生表的“姓名”,通过sacn/endscan循环将表的“姓名”全部加到list1。

表8.3对象属性设置

列表框数据互传

源数据列表

label2

目标数据列表

指定标签2提示文本

list1

rowsource

列表框数据源

rowsourcetype

列表框数据源类型

list2

添加一项

全部添加

移去一项

全部移去

命令按钮“添加一项”command1的click事件代码:

thisform.list2.additem(thisform.list1.value)

thisform.list1.removeitem(thisform.list1.listindex)

“添加一项”将list1内容移到list2,即list1的内容减少一项(removeitem),list2的内容增加一项(additem)。

命令按钮“全部添加”command2的click事件代码:

thisform.list1.clear

thisform.list2.clear

scan

thisform.list2.additem(姓名)

endscan

“全部添加”将list1内容全部移到list2,即list1全部清空(clear),list2内容为学生表的“姓名”。

命令按钮“移去一项”command3的click事件:

thisform.list1.additem(thisform.list2.value)

thisform.list2.removeitem(thisform.list2.listindex)

命令按钮“全部移去”command4的click事件:

thisform.list1.additem(姓名)

“全部移去”将list2内容全部移到list1,即list2全部清空(clear),list1内容为学生表的“姓名”。

5.运行界面如图8.8、8.9、8.10、8.11。

【例8.4】利用组合框统计学生的平均成绩。

1.显示指定学生的平均成绩和成绩档次;

2.不及格的平均成绩和档次用红色显示;

3.组合框数据源与学生表“姓名”绑定,在组合框combo1中选中某学生时,按“确定”按钮,text1中显示该生姓名,text2中显示该学生平均成绩,text3显示成绩档次;

4.按“继续”按钮,组合框combo1获得焦点;

5.按“退出”按钮时,释放表单。

表单运行界面如图8.13、8.14所示。

图8.13查询学生平均成绩及档次图8.14按下“继续”按钮界面

将学生表、成绩表加入数据环境。

在“常用工具栏”单击“标签”、“命令按钮”、“组合框”、“文本框”控件,将label1-4、command1-3、combo1、text1-3拖至表单。

表单设计界面如图8.15所示。

图8.15表单设计界面

(1)组合框和‘学生’表中的“姓名”字段绑定,通过sacn-endscan循环,combo1的additem方法,将“姓名”加入combo1。

(2)数据环境中放置学生和成绩两张表,通过select语句切换表。

(不能使用use命令切换!

)。

combo1中输入的是学生的“姓名”,要统计该生的平均成绩,必须使用成绩表,而成绩表中只有“学号”字段,没有“姓名”字段,所以必须设置一个变量xh存储“学号”。

先选择学生表,查找该学生,若存在,将“学号“值取出放在变量xh中,再选择成绩表,用averrage函数求出该生的平均成绩pjcj。

(3)成绩等级可以通过substr字符串截取,也可以通过docase/endcase语句实现。

求出的成绩分为大于60分(不是红色字体)和小于60分(红色字体)两种情况。

表8.4对象属性设置

成绩查询信息

请输入或选择学生

标签1提示文本

学生

标签2提示文本

label3

平均成绩

标签3提示文本

label4

成绩等级

标签4提示文本

确定

继续

settalkoff

sele学生

scan

bo1.additem(学生.姓名)

组合框和学生表中的“姓名”字段绑定

命令按钮“确定”command1的click事件代码:

locateforalltrim(姓名)=alltrim(bo1.value)

xh=学号

sele成绩

average成绩for学号=xhtopjcj

先选择学生表,查找该学生,若存在,将“学号”值取出放在变量xh中,再选择成绩表,用averrage函数求出该生的平均成绩pjcj。

ifpjcj<

60

p=0

p=int(pjcj/10)-5

ifpjcj>

=0

dc=substr("

不及格及格中良优"

6*p+1,6)

&

成绩档次

thisform.text1.value=bo1.value

ifpjcj<

thisform.text2.forecolor=rgb(255,0,0)

thisform.text3.forecolor=rgb(255,0,0)

成绩小于60分用红色背景

thisform.text2.forecolor=rgb(0,0,255)

thisform.text3.forecolor=rgb(0,0,255)

endif

thisform.text2.value=pjcj

thisform.text3.value=dc

thisform.text1.setfocus

命令按钮‘继续’command2的click事件代码:

bo1.setfocus

thisform.setall("

value"

"

"

textbox"

命令按钮‘退出’commnad3的click事件代码:

5.调试运行界面如图8.13、8.14。

【例8.5】利用计数器设计一个数字时钟计数器。

1.表单运行时,按下“复位”按钮,计数器清0;

2.按“计时”按钮时,从0开始计时;

3.按“停止”按钮时,停止计数,文本框显示暂停时的计时;

4.按下“退出”时,释放表单。

运行界面如图8.16、8.17、8.18所示。

图8.16表单运行初始界面图8.17按“计时”按钮表单运行界面

图8.18按“停止”按钮表单运行界面图8.19表单设计界面

1.创建表单。

在表单上单击“常用工具栏”,将时钟timer1、文本框text1、4个命令按钮command1-4拖至表单。

表单初始界面如图8.19所示。

(1)为进行分、秒、时的计时工作,新增3个表单属性thisform.m(代表秒)、thisform.f(代表分)、thisform.s(代表小时)。

(2)表单刚运行时,计时器不工作(enabled为假),thisform.m、thisfor.f、thisform.s为0,文本框显示“00:

00:

00”。

(3)“复位”按钮,表示计数从0开始,文本框显示“00:

00”同时thisform.m、thisfor.f、thisform.s全部清为0。

(4)“计时”按钮表示计数器开始工作(enabled为真),每隔1秒进入timer1的timer事件;

“停止”表示计数器停止工作(enabled为假)。

(5)计数器每隔1秒加1,从秒开始(thisform.m),当秒加到60,分加1(thisform.f),秒清0;

当分加到60,时加1(thisform.s),分、秒清0;

当时加到24,秒、分、时全清0。

新建表单属性thisform.m、thisform.f、thisform.s,代表计时秒、分、小时。

表8.5对象属性设置

计时器

复位

计时

停止

fontsize

48

设置文本框字体大小

timer1

interval

1000

设置计时器时间间隔

thisform.timer1.enabled=.f.

thisform.text1.value='

00:

00'

thisform.m=0

thisform.s=0

thisform.f=0

表单刚运行时,计时器不工作(enabled为假),thisform.m、thisfor.f、

thisform.s为0,文本框显示“00:

命令按钮“复位”command1的click事件代码:

“复位”按钮,表示计数从0开始,文本框显示“00:

00”同时thisform.m、

thisfor.f、thisform.s全部清为0。

命令按钮“计时”command2的click事件代码:

thisform.timer1.enabled=.t.

命令按钮“停止”command3的click事件代码:

命令按钮“退出”command4的click事件代码:

thisform.release

timer1的timer事件代码:

thisform.m=thisform.m+1

ifthisform.m=60

thisform.f=thisform.f+1

thisform.m=0

ifthisform.f=60

thisform.s=thisform.s+1

  thisform.f=0

  ifthisform.s=24

    thisform.s=0

    thisform.m=0

    thisform.f=0

  endif

计数器每隔1秒加1,从秒开始(thisform.m),当秒加到60,分加1(thisform.f),

秒清0;

当时加到24,秒、分、&

时全清0。

mm=iif(thisform.m<

10,'

0'

+str(thisform.m,1),str(thisform.m,2))

ff=iif(thisform.f<

+str(thisform.f,1),str(thisform.f,2))

ss=iif(thisform.s<

+str(thisform.s,1),str(thisform.s,2))

若数字小于10,再数字前面加一个前“0”

thisform.text1.value=ss+'

:

+ff+'

+mm

5.调试运行界面如图8.16、8.17、8.18。

五、上机练习题

【练习8.1】设计一个可以改变表单标题和标签控件标题的表单,表单刚运行时,表单的标题为form1,标签的标题为label1,如图8.20(a)。

要求:

鼠标单击标签控件后,表单的标题显示为“欢迎表单”,表单的背景颜色变为红色,标签的标题显示为“欢迎使用vfp”,表单运行界面如图8.20(b)。

(b)

图8.20练习8.1

【练习8.2】设计一个调查表单,能够统计手机使用的网络类型。

(1)被调查者选择网络类型,单击“提交”按钮后,更改”手机类型.dbf”相应字段的内容;

(2)单击“查看”按钮,显示目前为止各手机使用的网络类型的累计数值。

手机类型.dbf     (b)(c)单击“查看”按钮

图8.11练习8.2

【练习8.3】设计一个中文日历表单.

(1)文本框中显示汉语格式的日期;

(2)单击微调控件的向上箭头时,日期加一天,单击微调控件的向下箭头时,日期减一天。

图8.22 练习8.3

【练习8.4】创建一个求指定班级平均成绩的表单。

(1)在组合框中选择班级(学号的左四位)后,表单将自动显示对应班级的所有学生的总平均成绩;

(2)按"

退出"

按钮时,自动关闭表单。

图8.23 练习8.4

【练习8.5】查询指定班级的学生名单。

(1)输入班级号按“确定”按钮后,把指定班级的学生名单添加到组合框中;

(2)在学生名单添加到组合框后,在组合框中选择一个学生姓名,标签3提示当前学生的记录号。

图8.24 练习8.5

【练习8.6】创建一个动态显示信息的表单,在文本框中显示文字“欢迎使用表单”。

每秒显示一个字(如图8.25(a)、(b)所示),当全部显示完毕图(c)再回到图(a)重新开始每秒逐个显示,直到按下退出按钮为止。

图8.25 练习8.6

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1