如何使用 VFP(Microsoft Visual FoxPro)设计一个简易计算器?
胡 伟
本文内容主要介绍如何使用 VFP
设计如下图所示的一个简易的计算器。
一、创建项目文件 jsq.pjx 创建 jsq 文件夹:c:\jsq (以下文件均以此为存储目录)
在 c:\jsq 下创建项目文件:c:\jsq.pjx
二、创建表单 jsq.scx (一)创建表单 jsq,并设置属性:设 AutoCenter 为 “.T.” 、ShowWindow 为 “作为顶 层表单”
(二)在表单 jsq 内创建各对象
1、创建
(菜单部分在后面创建)
单击“表单控件”工具栏上的“文本框”按钮 性 Alignment 为“1-右”
,在表单上的适当位置单击。并设置属
2、创建容器控件 设置属性 SpecialEffect 为“凹下”
3、创建命令控件
更改属性 Caption “Command1”为“Backspace” ,属性 ForeColor “0,0,0”为“255,0,0”
4、如同创建
,创建其它控件。
单击表面空白部分,更改属性 Caption “Form1”为“计算器” 。
5、编辑各控件的命令代码 新建属性 ls 并改其属性“.F.”为“0” ;新建属性 mm 并改其属性“.F.”为“0” 。 (1)Backspace 双击 Backspace 控件,在打开的 Command1.klick 中编写如下代码: thisform.text1.value=substr(alltrim(thisform.text1.value),1,len(alltrim(thisform.text1.value))-1)
(2)CE 的代码为: thisform.text1.value='' (3)C 的代码为: thisform.text1.value='' thisform.ls=0 thisform.tag='' (4)MC 的代码为: thisform.mm=0 (5)MR 的代码为: thisform.text1.value=alltrim(str(thisform.mm)) (6)MS 的代码为: thisform.mm=val(alltrim(thisform.text1.value)) (7)M+ 的代码为: thisform.mm=thisform.mm+val(alltrim(thisform.text1.value)) (8)0 的代码为: thisform.text1.value=thisform.text1.value+'0' if alltrim(thisform.text1.value)='00' thisform.text1.value='0' endif 同理编写 1、2、3、4、5、6、7、8、9 的代码。 (9)+ 的代码为: thisform.ls=val(thisform.text1.value)
thisform.tag='1' thisform.text1.value='' 同理编写 - 、 * 、/ 的代码 (10)= 的代码为: do case case thisform.tag='1' thisform.text1.value=alltrim(str(thisform.ls+val(thisform.text1.value),20,4)) case thisform.tag='2' thisform.text1.value=alltrim(str(thisform.ls-val(thisform.text1.value),20,4)) case thisform.tag='3' thisform.text1.value=alltrim(str(thisform.ls*val(thisform.text1.value),20,4)) case thisform.tag='4' thisform.text1.value=alltrim(str(thisform.ls/val(thisform.text1.value),20,4)) endcase (11)sqrt 的代码为: thisform.text1.value=alltrim(str(sqrt(val(thisform.text1.value)),20,4)) (12)% 的代码为: if thisform.tag='4' thisform.text1.value=alltrim(str(thisform.ls/val(thisform.text1.value)*100,20,4)) endif (13)1/x 的代码为: thisform.text1.value=alltrim(str(1/val(thisform.text1.value),20,4))
(14)+/- 的代码为: if substr(alltrim(thisform.text1.value),1,1)='-' thisform.text1.value=substr
(alltrim(thisform.text1.value),2) else thisform.text1.value='-'+alltrim(thisform.text1.value) endif (15). 的代码为: if at ('.',thisform.text1.value)=0 thisform.text1.value=thisform.text1.value+'.' endif 三、创建
程序 jsq.prg 代码为: set default to c:\jsq do form jsq.scx read events 并设置 jsq.prg 为主文件。 四、创建 config.fpw 代码为: screen=off 五、创建菜单 jsq.mnx
(1)编辑 子菜单的创建
(2)查看 子菜单的创建
(3)帮助 子菜单的创建
(4)生成 jsq.mpr
(5)设置 jsq.mnx 属性,即选中“顶层表单” 。
六、修改表单 jsq.scx (1)在 Init 事件中加入代码: do jsq.mpr with this, .t. (2)在 Destroy 事件中加入代码: thisform.release clear events 七、连编各文件