计算器

一、  计算器

(一)整数计算器

步骤一:1. 向Form1中添加16个Button(数字Name:Button1至Button0;加减乘除Name:ButtonAdd,ButtonSub,ButtonMul,ButtonDiv;等号,取消Name:ButtonEqu,ButtonCan)和1个Edit组件。

        2. 利用View菜单---Alignment Palette功能使16个Button排列整齐。

步骤二:

1.      在implementation后面添加变量x,y:

           var

          x,y:integer;

2.  填写16个Button的代码:

Button1至Button0(以Button1为例):

       edit1.Text:=edit1.Text+'1';

       ButtonCan:

edit1.Text:='';

ButtonAdd:

x:=strtoint(edit1.Text);

y:=1;

edit1.Text:='';

ButtonSub:

x:=strtoint(edit1.Text);

y:=2;

edit1.Text:='';

ButtonMul:

x:=strtoint(edit1.Text);

y:=3;

edit1.Text:='';

ButtonDiv:

x:=strtoint(edit1.Text);

y:=4;

edit1.Text:='';

ButtonEqu:

case y of

 1:edit1.Text:=inttostr(x+strtoint(edit1.Text));

 2:edit1.Text:=inttostr(x-strtoint(edit1.Text));

 3:edit1.Text:=inttostr(x*strtoint(edit1.Text));

 4:edit1.Text:=inttostr(x div strtoint(edit1.Text));

 end;

设置键盘输入:

Button1---OnKeyPress事件:

if (Key>='0')and (Key<='9') then edit1.Text:=edit1.Text+Key;

if (Key='+') then

begin

x:=strtoint(edit1.Text);

y:=1;

edit1.Text:='';

end;

if (Key='-') then

begin

x:=strtoint(edit1.Text);

y:=2;

edit1.Text:='';

end;

if (Key='*') then

begin

x:=strtoint(edit1.Text);

y:=3;

edit1.Text:='';

end;

if (Key='/') then

begin

x:=strtoint(edit1.Text);

y:=4;

edit1.Text:='';

end;

if (Key='=') then

begin

case y of

1:edit1.Text:=inttostr(x+strtoint(edit1.Text));

2:edit1.Text:=inttostr(x-strtoint(edit1.Text));

3:edit1.Text:=inttostr(x*strtoint(edit1.Text));

4:edit1.Text:=inttostr(xdiv strtoint(edit1.Text));

end;

end;  //need two end

把其他15个Button--- OnKeyPress事件 设置成与Button1--- OnKeyPress相同即可。

收尾工作:

Edit1---OnEnter事件:

button1.SetFocus;

小数计算器

步骤一:1. 在整数计算器的16个Button的基础上,继续添加4个Button(小数点 Name:ButtonDot 取相反数(+/-)  Name:ButtonFu 取算术平方根(sqrt)  Name:ButtonSqrt  退出: Name: ButtonExit)        

2. 利用View菜单---Alignment Palette功能使16个Button排列整齐。

步骤二:Button1至Button0 与整数计算器的代码相同

在implementation后面添加变量x,y:

var

            x:real;

            y:integer;

ButtonDot:

   edit1.Text:=edit1.Text+'.';

   ButtonDot.Enabled:=false;

   ButtonFu:

   Edit1.Text:=floattostr(-strtofloat(edit1.Text));

   ButtonSqrt:

  edit1.Text:=floattostr(sqrt(strtofloat(edit1.Text)));

   ButtonExit:

   close;

       ButtonCan:

edit1.Text:='';

ButtonAdd:

x:=strtofloat(edit1.Text);

y:=1;

edit1.Text:='';

ButtonDot.Enabled:=true;

ButtonSub:

x:=strtofloat(edit1.Text);

y:=2;

edit1.Text:='';

ButtonDot.Enabled:=true;

ButtonMul:

x:=strtofloat(edit1.Text);

y:=3;

edit1.Text:='';

ButtonDot.Enabled:=true;

ButtonDiv:

x:=strtofloat(edit1.Text);

y:=4;

edit1.Text:='';

ButtonDot.Enabled:=true;

ButtonEqu:

   case y of

  1:edit1.Text:=floattostr(x+strtofloat(edit1.Text));

  2:edit1.Text:=floattostr(x-strtofloat(edit1.Text));

  3:edit1.Text:=floattostr(x*strtofloat(edit1.Text));

  4:edit1.Text:=floattostr(x/strtofloat(edit1.Text));

   end;  

3.  设置键盘输入:

Button1---OnKeyPress事件:

if(key>='0')and (key<='9') then edit1.Text:=edit1.Text+key;

   if(key='+') then

   begin

   x:=strtofloat(edit1.Text);

   y:=1;

   edit1.Text:='';

   end;

   if(key='-') then

   begin

   x:=strtofloat(edit1.Text);

   y:=2;

   edit1.Text:='';

   end;

   if(key='*') then

   begin

   x:=strtofloat(edit1.Text);

   y:=3;

   edit1.Text:='';

   end;

   if(key='/') then

   begin

   x:=strtofloat(edit1.Text);

   y:=4;

   edit1.Text:='';

   end;

   if(key='.') then edit1.Text:=edit1.Text+'.';

   if(key='=') then

   begin

   case y of

  1:edit1.Text:=floattostr(x+strtofloat(edit1.Text));

  2:edit1.Text:=floattostr(x-strtofloat(edit1.Text));

  3:edit1.Text:=floattostr(x*strtofloat(edit1.Text));

   4:edit1.Text:=floattostr(x/strtofloat(edit1.Text));

   end;

   end;

把其他所有Button--- OnKeyPress事件 设置成与Button1--- OnKeyPress相同即可。

收尾工作:

Button1---OnEnter事件:

button1.SetFocus;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值