简单的加减乘除 ,归零 删除都弄得差不多了,初学不是太懂该如何使他实现多个数的运算。例如依次按下2 +2 +2 最后按等于为6. 我现在弄得2+2+2按完是4,只计算后2个,不知道该如何将前2个2相加的结果锁存后与第三个2相加显示结果。 或者按完2+2后在按+号显示4也行。
procedure TForm1.Button12Click(Sender: TObject); //加号
begin
a:=StrToFloat(Result.Text);
iOperator:=1;
Result.Text := '';
end;
procedure TForm1.Button13Click(Sender: TObject); //减号
begin
a:=StrToFloat(Result.Text);
iOperator:=2;
Result.Text := '';
end;
procedure TForm1.Button14Click(Sender: TObject); //乘号
begin
a:=StrToFloat(Result.Text);
iOperator:=3 ;
Result.Text := '';
end;
procedure TForm1.Button15Click(Sender: TObject); //除号
begin
a:=StrToFloat(Result.Text);
iOperator:=4;
Result.Text := '';
end;
procedure TForm1.Button20Click(Sender: TObject); //百分号键功能
begin
a:=StrToFloat(Result.Text);
b := StrToFloat(Result.Text);
c:=a*b;
Result.Text := FloatToStr(c/100);
end;
procedure TForm1.Button18Click(Sender: TObject); //等号计算
begin
b := StrToFloat(Result.Text);
if iOperator >0 then
case iOperator of
1: c := a + b;
2: c := a - b;
3: c := a * b;
4: if b=0
then
begin
showmessage('除数不能为0');
exit;
end
else begin
c:=a/b;
end;
end;
Result.Text := FloatToStr(c);
end;
procedure TForm1.Button19Click(Sender: TObject); //正负号输入
begin
if Result.text <> '' then
Result.Text :=floattostr(strtofloat(Result.Text )*(-1));
end;
procedure TForm1.Button16Click(Sender: TObject); //删除键
begin
Result.Text := Copy(Result.Text,0,Length(Result.Text)-1);
if Result.Text='' then
Result.Text:='0';
end;
procedure TForm1.Button17Click(Sender: TObject); //归零
begin
Result.Text:='0';
end;
procedure TForm1.Button11Click(Sender: TObject); //0-9以及小数点输入
begin
if (Pos('.',Result.Text)>1) then
exit
else
Result.Text:=Result.Text+'.';
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
if Result.Text='0' then
Result.Text:='0'
else
Result.Text:=Result.Text+'0';
end;
因为内容限制,发了部分代码。 像0-9按键可以用一次代码 来弄,但是初学暂时不会,就一个个弄了
delphi计算器实现连续运算
弄2个全局变量,一个存放上次计算结果,一个存放上次按了什么运算符,所有运算符键统一调用一个函数(相当于你那个=号键功能),点击运算键后判断这2个全局变量然后再对应什么功能。最好的办法你拿个计算器点一下,看它是怎么处理的。
温馨提示:答案为网友推荐,仅供参考