您的位置:首页 > 其它

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

2013-04-19 15:54 399 查看
没有接触过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

添加完这些代码,记得随时保存。(下一篇继续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐