Chinaunix首页 | 论坛 | 博客
  • 博客访问: 112853
  • 博文数量: 106
  • 博客积分: 2025
  • 博客等级: 大尉
  • 技术积分: 1165
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-06 12:51
文章分类

全部博文(106)

文章存档

2012年(106)

我的朋友

分类: 嵌入式

2012-05-07 17:50:44

一、 计算器

(一)整数计算器

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

阅读(250) | 评论(0) | 转发(0) |
0

上一篇:计算机算术运算

下一篇:记事本

给主人留下些什么吧!~~