关闭

计算器

标签: buttoninteger工作div
138人阅读 评论(0) 收藏 举报
分类:

一、  计算器

(一)整数计算器

步骤一: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;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:28525次
    • 积分:856
    • 等级:
    • 排名:千里之外
    • 原创:63篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章存档
    最新评论