当前位置:编程学习 > Delphi >>

delphi 大大请入!

用delph设计计算器,怎么实现运算的时候按第二个数据时才把第一个数据清除,这跟我们见到的计算器是一样的,而不是在按运算符的时候就把显示的第一个数据清掉?
追问:edit1.text:=edit1.text+'0';这是按下0键的时候的表达式,其他数字按键跟这一样我是看很多网上计算器的程序都是按一下加减乘除就清掉了,但是实际的计算器是在按第二个数据时才把第一个数据清掉的。
按加号的时候执行
s1:=edit1.text;
edit1.clear;
然后输入第二个数据
按等号的时候
s2:=edit1.text
s:=strtofloat(s1)+strtofloat(s2);
edit1.text:=floattostr(s);还要写函数啊,我现在刚起步学习delphi,我就说我都想破了头也没办法搞定啊,你会写吗,给我一个,我参考下!但是有这个问题,比如你按了+号,chk:=1,这时第二个数据比如是345,按3时,判断chk是否等于1,这时候=1了,那么清楚,然后输入3,但是按4的时候,你也得判断chk是不是等于1啊,这样判断就把刚才的3给清除了,不知道你明白我意思没,就是说你不清楚第二个数据的第一个数字是几,所以你在每个数据按键下都得判断chk=1?,这时候回到345这个问题,按3按4按5的时候chk都等于1,这样就会重复的把前面的数字清掉,不知道我的理解对吗?
答案:把你按运算符的时候执行的代码贴出来看看是什么问题
其他:设一个变量来控制
比如开始令chk=0
按0-9和小数点之后(之后,就是执行其他代码之后),chk=0
按+-/*之后,chk=1

然后按0-9的时候,先判断chk,如果是0就不清除,直接在edit后面加当前所按数字;如果chk是1,就清除edit之后再加当前数字
按+-/*edit不变,但是要程序记录之前的数字和要进行的运算符(+-/*)。。。 比较笨的方法:
程序中添加一个boolean类型的变量a(初始为false) ,
在每个运算符(设置成按钮吧?)的响应函数中将a 的值设置为true。
在每个数字的响应函数中判断boolean变量的值,if a= true,就先把第一个数据清除,并将a 重置为false。 

上一个:delphi ehlib总是出现FixGridlinecolor属性does not exist 程序是我自己开发的,后然系统重装过。就这样了
下一个:delphi要把数据库表A中字段折扣(zk decimal(10,2))中的数据0改为1,1改为0,其他的不变,要怎么做?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,