delphi计算器实现连续运算 5
简单的加减乘除,归零删除都弄得差不多了,初学不是太懂该如何使他实现多个数的运算。例如依次按下2+2+2最后按等于为6.我现在弄得2+2+2按完是4,只计算后2个,不知道该...
简单的加减乘除 ,归零 删除都弄得差不多了,初学不是太懂该如何使他实现多个数的运算。例如依次按下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按键可以用一次代码 来弄,但是初学暂时不会,就一个个弄了 展开
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按键可以用一次代码 来弄,但是初学暂时不会,就一个个弄了 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询