使用 VFP ( Microsoft Visual FoxPro ) 设计一个简易计算器(上)

      没有接触过VFP,因为公司项目需要VFP实现修改位图DPI,所以过来摸索一下VFP怎么用。

      百度查VFP,百度百科的名词解释是:http://baike.baidu.com/view/512982.htm

       Visual FoxPro ,是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到Windows之后,得来的应用程序开发软件,主要用于开发数据管理与运算等方面的软件。VFP是Microsoft公司推出的最新可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统。它提供了功能完备的工具、极其友好的用户界面、简单的数据存取方式、独一无二的跨平台技术,交肯有良好的兼容性、真正的可编译性和较强的安全性,是目前最快捷、最实用的数据库管理系统软件之一。

       感觉VFP只是数据库管理软件,它怎么就可以改变图片的DPI了?(留待之后解决)下面简单记录VFP编程步骤:

一、下载VFP软件:http://download.csdn.net/detail/wangwenjing90/5276893

二、新建项目jsq(计算器) :运行Microsoft Visual FoxPro 6.0,文件--》新建--》项目--》新建文件,选项目保存位置(最好自己事先新建一个文件夹,因为会自动生成几个文件),输入项目文件名称:jsq ,保存。



三、设计表单(相当于VC中设置对话框样式):在项目管理器中切换到“文档”选项卡,选中“表单”,点击“新建”--》新建表单。



接下来按照计算器的样式设置表单控件及其属性即可:

注意:这里表单控件跟VC中不太一样,VC是直接拖到对话框中,这里是必须先点一下控件,再在表单中放置控件,并且可以改变控件的字体颜色,貌似比VC方便一些。


设计好表单之后,关闭表单设计器 -- 文档1,会弹出保存文档


点击“是”,选择保存在刚才新建项目的目录里面,输入表单名 jsq.scx ,确定。然后点击“添加”,选择刚才保存的表单 jsq.scx ,双击该表单又会进入表单设计器。

四、编辑各控件的命令代码(跟VC一样,双击控件添加消息响应函数):

首先要为表单新建属性(后面要用到),在最上面的系统菜单栏中选“表单”--》“新建属性”--》名称:ls --》“添加”。再新建属性mm ,添加完后关闭“新建属性”框。


接下来修改这两个属性的默认值,都把 .F. 改为0


做完这些就开始为每一个控件添加方法了:

1、双击 Backspace 控件,在打开的Command1 Click中编写如下代码(Command1就相当于VC中的控件ID,可以修改的,我在这里就不做修改了): 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 

添加完这些代码,记得随时保存。(下一篇继续)

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值