vfp计算器.docx
《vfp计算器.docx》由会员分享,可在线阅读,更多相关《vfp计算器.docx(20页珍藏版)》请在冰豆网上搜索。
vfp计算器
制作vfp计算器
——Vfp应用初探
平山县回舍中学郜兵山
Vfp是一个非常实用的程序软件,它不仅能用于数据库的管理,而且用它也可以设计出一些非常实用的程序。
本实例就是用vfp来设计的一个计算器,用它可以完成基本的数学运算。
下面是这个程序的具体设计过程。
[实例说明]启动程序之后,“输入算式”以外的按钮均和文本框均处于不可用状态;单击“输入算式”按钮之后,文本框、从“1”到“Exp”命令按钮、“计算”、“回零”、“退出”等命令按钮可用,用户可以通过键盘或鼠标向文本框中输入算式;单击“计算”按钮,文本框中显示输入的算式及运算结果;若不输入算式,直接单击计算按钮,将在文本框中出现提示信息“还没有输入算式,请输入算式”;单击“清零”按钮,文本框清空,从“1”到“Exp”命令按钮及“计算”、“清零”按钮t和文本框不可用,直至单击“输入算式”按钮,这些按钮恢复可用;单击“退出”按钮,退出程序的运行。
[技术要点]1、界面规划:
利用容器控件,将标签、文本框、命令按钮置于容器控件之中,一是便于整体规划,二可突出界面的立体效果。
2、用宏替换函数&X,将文本框中输入的内容转化为数学运算式,计算出算式的结果.
3.用empt()函数,判断文本框中是否为空格字符串,以便对文本框中显示的内容进行选择.
4、为避免用户使用该软件的过程中出现误操作,在命令按钮的事件过程代码中,有意识地设置命令按钮及文本框的可用和不可用状态。
[制作方法及步骤]
第一步、启动程序建立项目文件及表单文件
1、执行“开始”→“所有程序”→“MicrosoftOfficeVisualFoxpro6.0”→“MicrosoftOfficeVisualFoxpro6.0”命令,启动vfp程序。
2、执行“文件”→“新建”命令,打开“新建”对话框。
3、在“新建”对话框中,选择“项目”选项之后,单击“新建文件”按钮,打开“创建”对话框,如下图所示。
4、在“创建”对话框中,选择文件保存的位置,输入项目名称之后,单击“保存”按钮,打开项目管理器。
如下图所示。
5、在项目管理器中,依次选择“文档”、“表单”之后,单击右侧的“新建”按钮,打开“新建表单”对话框。
如下图所示。
6、在“新建表单”对话框中,单击“新建表单”按钮,打开“表单设计器”,如下图所示。
第二、规划表单界面并向表单中添加控件
1、向表单中添加容器控件,并调整各容器控件的大小、位置。
调整后的效果如下图所示。
2、在属性窗口中设置表单及五个容器控件的属性如下表所示。
对象
属性
属性值
表单
Name
Form1
Caption
Vfp计算器
Backcolor
192,192,192
Caption
Vfp计算器
Bordstyle
0-无边框
MaxButton
.F.-假
MinButton
.F.-假
Windowstate
0-普通
Container1
Name
Container1
Backcolor
192,192,192
Specialeffect
0-凸起
Container2
Name
Container2
Backcolor
192,192,192
Specialeffect
0-凸起
Container3
Name
Container3
Backcolor
192,192,192
Specialeffect
1-凹下
Container4
Name
Container4
Backcolor
192,192,192
Specialeffect
0-凸起
Container5
Name
Container5
Backcolor
192,192,192
Specialeffect
0-凸起
设置后表单及所添加的容器控件的效果如下图所示。
3、向容器控件中添加命令按钮、标签、文本框等控件。
(1)右键单击container1,弹出快捷菜单,在快捷菜单中选择“编辑”,使container1处于编辑状态,在控件工具箱中选择标签工具,在container1上拖动出标签,并在属性窗口中修改该标签的caption属性值为“Vfp计算器”,Fontsize的值为25,Backcolor的值为192,192,192。
(2)用与
(1)同样的方法,在container4中添加标签,并在属性窗口中修改其caption属性值为“算式及运算结果”,Fontsize的值为20,Backcolor的值为192,192,192
(3)在container2中添加command1—Command23等二十三个命令按钮。
(4)在container5中添加command24—Command27等四个命令按钮。
(5)在container3中添加文本框。
4、在属性窗口中对container2、Container5、Container3添加的命令按钮及文本框的属性按下表设置。
容器名称
按钮名称
属性
属性值
Container2
Height
Width
Enabled
Caption
1
Height
30
Width
50
Enabled
.F.
Command2
Caption
2
Height
30
Width
50
Enabled
.F.
Command3
Caption
3
Height
30
Width
50
Enabled
.F.
Command4
Caption
4
Height
30
Width
50
Enabled
.F.
Command5
Caption
5
Height
30
Width
50
Enabled
.F.
Command6
Caption
6
Height
30
Width
50
Enabled
.F.
Command7
Caption
7
Height
30
Width
50
Enabled
.F.
Command8
Caption
8
Height
30
Width
50
Enabled
.F.
Command9
Caption
9
Height
30
Width
50
Enabled
.F.
Command10
Caption
0
Height
30
Width
50
Enabled
.F.
Command11
Caption
.
30
50
.F.
Command12
Caption
+
Height
30
Width
50
Enabled
.F.
Command13
Caption
(
Height
30
Width
50
Enabled
.F.
Command14
Caption
)
Height
30
Width
50
Enabled
.F.
Command15
Caption
-
Height
30
Width
50
Enabled
.F.
Command16
Caption
Sin
Height
30
Width
50
Enabled
.F.
Command17
Caption
*
Height
30
Width
50
Enabled
.F.
Command18
Caption
/
Height
30
Width
50
Enabled
.F.
Command19
Caption
Cos
Height
30
Width
50
Enabled
.F.
Command20
Caption
Sqrt
Height
30
Width
50
Enabled
.F.
Command21
Caption
Abs
Height
30
Width
50
Enabled
.F.
Command22
Caption
Log
Height
30
Width
50
Enabled
.F.
Command23
Caption
Exp
Height
30
Width
50
Enabled
.F.
Container5
Command1
Caption
输入算式
Height
30
Width
50
Command2
Caption
计算
Height
30
Width
50
Enabled
.F.
Command3
Caption
清零
Height
30
Width
50
Enabled
.F.
Command4
Caption
退出
Height
30
Width
50
Enabled
.F.
Container3
文本框
Name
Text1
Text1
Enabled
.F.
Height
60
Width
400
表中各控件设置属性后的效果如下图所示。
第三步、为表单中各命令按钮添加事件过程代码。
Container2中各命令按钮的事件过程代码如下:
ProcedureContainer2.Command1.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"1"
Endproc
ProcedureContainer2.Command2.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"2"
Endproc
ProcedureContainer2.Command3.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"3"
Endproc
ProcedureContainer2.Command4.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"4"
Endproc
ProcedureContainer2.Command5.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"5"
Endproc
ProcedureContainer2.Command6.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"6"
Endproc
ProcedureContainer2.Command7.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"7"
Endproc
ProcedureContainer2.Command8.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"8"
Endproc
ProcedureContainer2.Command9.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"9"
Endproc
ProcedureContainer2.Command10.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"0"
Endproc
ProcedureContainer2.Command11.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"."
Endproc
ProcedureContainer2.Command12.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"+"
Endproc
ProcedureContainer2.Command13.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"("
Endproc
ProcedureContainer2.Command14.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+")"
Endproc
ProcedureContainer2.Command15.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"-"
Endproc
ProcedureContainer2.Command16.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"Sin"
Endproc
ProcedureContainer2.Command17.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"*"
Endproc
ProcedureContainer2.Command18.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"/"
Endproc
ProcedureContainer2.Command19.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"Cos"
Endproc
ProcedureContainer2.Command20.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+”Sqrt"
Endproc
ProcedureContainer2.Command21.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"Abs"
Endproc
ProcedureContainer2.Command22.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"Log"
Endproc
ProcedureContainer2.Command22.Click
Thisform.Container3.Text1.Value=Thisform.Container3.Text1.Value+"Exp"
Endproc
Container5中四个命令按钮的事件过程代码如下
ProcedureContainer5.Command1.Click
Thisform.Container5.Command1.Enabled=.F.
Thisform.Container5.Command2.Enabled=.T.
Thisform.Container5.Command3.Enabled=.T.
Thisform.Container5.Command4.Enabled=.T.
Thisform.Container3.Text1.Visible=.T.
Thisform.Container3.Text1.Enabled=.T.
Thisform.Container3.Text1.Setfocus
Thisform.Container2.Command1.Enabled=.T.
Thisform.Container2.Command2.Enabled=.T.
Thisform.Container2.Command3.Enabled=.T.
Thisform.Container2.Command4.Enabled=.T.
Thisform.Container2.Command5.Enabled=.T.
Thisform.Container2.Command6.Enabled=.T.
Thisform.Container2.Command7.Enabled=.T.
Thisform.Container2.Command8.Enabled=.T.
Thisform.Container2.Command9.Enabled=.T.
Thisform.Container2.Command10.Enabled=.T.
Thisform.Container2.Command11.Enabled=.T.
Thisform.Container2.Command12.Enabled=.T.
Thisform.Container2.Command13.Enabled=.T.
Thisform.Container2.Command14.Enabled=.T.
Thisform.Container2.Command15.Enabled=.T.
Thisform.Container2.Command16.Enabled=.T.
Thisform.Container2.Command17.Enabled=.T.
Thisform.Container2.Command18.Enabled=.T.
Thisform.Container2.Command19.Enabled=.T.
Thisform.Container2.Command20.Enabled=.T.
Thisform.Container2.Command21.Enabled=.T.
Thisform.Container2.Command22.Enabled=.T.
Thisform.Container2.Command23.Enabled=.T.
Endproc
ProcedureContainer5.Command2.Click
Thisform.Container5.Command2.Enabled=.F.
Thisform.Container5.Command1.Enabled=.F.
Thisform.Container5.Command3.Enabled=.T.
Thisform.Container5.Command4.Enabled=.T.
X=Thisform.Container3.Text1.Value
IfEmpty(Thisform.Container3.Text1.Value)Then
Thisform.Container3.Text1.Value="还没有输入算式,请输入算式!
"
Else
Thisform.Container3.Text1.Value=Alltrim(X)+"="+Alltrim(STR(&X))
Endif
Endproc
ProcedureContainer5.Command3.Click
Thisform.Container3.Text1.Value=""
Thisform.Container3.Text1.Enabled=.F.
Thisform.Container3.Text1.Visible=.F.
Thisform.Container5.Command1.Enabled=.T.
Thisform.Container5.Command2.Enabled=.F.
Thisform.Container5.Command3.Enabled=.F.
Thisform.Container5.Command4.Enabled=.T.
Thisform.Container2.Command1.Enabled=.F.
Thisform.Container2.Command2.Enabled=.F.
Thisform.Container2.Command3.Enabled=.F.
Thisform.Container2.Command4.Enabled=.F.
Thisform.Container2.Command5.Enabled=.F.
Thisform.Container2.Command6.Enabled=.F.
Thisform.Container2.Command7.Enabled=.F.
Thisform.Container2.Command8.Enabled=.F.
Thisform.Container2.Command9.Enabled=.F.
Thisform.Container2.Command10.Enabled=.F.
Thisform.Container2.Command11.Enabled=.F.
Thisform.Container2.Command12.Enabled=.F.
Thisform.Container2.Command13.Enabled=.F.
Thisform.Container2.Command14.Enabled=.F.
Thisform.Container2.Command15.Enabled=.F.
Thisform.Container2.Command16.Enabled=.F.
Thisform.Container2.Command17.Enabled=.F.
Thisform.Container2.Command18.Enabled=.F.
Thisform.Container2.Command19.Enabled=.F.
Thisform.Container2.Command20.Enabled=.F.
Thisform.Container2.Command21.Enabled=.F.
Thisform.Container2.Command22.Enabled=.F.
Thisform.Container2.Command23.Enabled=.F.
Endproc
ProcedureContainer5.Command4.Click
Thisform.Release
Endproc
第五步、建立系统菜单。
在资源管理器中依次选择“其他”→“菜单”,然后,单击“新建”按钮,打开“新建菜单”对话框,如下图所示。
在“新建菜单”对话框中,单击“菜单”按钮,打开“菜单”设计器窗口。
在该设计器的菜单名称下方,输入菜单的名称“打开计算器”,单击“结果”下方的下拉按钮,在弹出的列表中选择命令,在命令后面输入以下命令:
DoFormF:
\资料\教学专用\自