📄 unit1.pas
字号:
if edit1.text='' then temp1:='0'
else
temp1:=edit1.Text; //第一个参加运算的数
edit1.Clear;
end
else
begin
if flag3=1 then //如果连续按多次"+"号,不处理。
else
begin
if edit1.Text=''then temp3:=0
else
temp3:=strtofloat(edit1.text); //第二个参加运算的数
edit1.Text:=floattostr(temp3+strtofloat(temp1));
temp1:=edit1.text;
end;
end;
end;
flag3:=1; //按下一次"+"号后就不是第一次了
flag:=1; //标志位为1,加法
B:=true; //重新按下不同运算的“=”号。
buffer:=flag;
C:=0;
end;
procedure TForm1.SpeedButton27Click(Sender: TObject); //减法处理过程
begin
if edit1.text='' then edit1.Text:='0';
if flag=1 then //若之前是"+"号
begin
edit1.Text:=floattostr(strtofloat(temp1)+strtofloat(edit1.text));
temp1:=edit1.text;
end
else if flag=3 then //若之前是"*"号
begin
edit1.Text:=floattostr(strtofloat(temp1)*strtofloat(edit1.text));
temp1:=edit1.text;
end
else if flag=4 then //若之前是"/"号
begin
if edit1.text='0' then
begin
edit1.text:='除数不能为0';
edit1.Enabled:=false;
end
else
begin
edit1.Text:=floattostr(strtofloat(temp1)/strtofloat(edit1.text));
temp1:=edit1.text;
end;
end
else
begin
if flag3=0 then //若第一次输入“-”号
begin
if edit1.text='' then temp1:='0'
else
temp1:=edit1.Text; //第一个参加运算的数
edit1.Clear;
end
else
begin
if flag3=1 then //如果连续按多次"-"号,不处理。
else
begin
if edit1.Text=''then temp3:=0
else
temp3:=strtofloat(edit1.text); //第二个参加运算的数
edit1.Text:=floattostr(strtofloat(temp1)-temp3);
temp1:=edit1.text;
end;
end;
end;
flag3:=1; //按下一次"-"号后就不是第一次了
flag:=2; //标志位为2,减法
B:=true; //重新按下不同运算的“=”号。
buffer:=flag;
C:=0;
end;
procedure TForm1.SpeedButton12Click(Sender: TObject);//乘法处理过程
begin
if edit1.text='' then edit1.Text:='0';
if flag=1 then //若之前是"+"号
begin
edit1.Text:=floattostr(strtofloat(temp1)+strtofloat(edit1.text));
temp1:=edit1.text;
end
else if flag=2 then //若之前是"-"号
begin
edit1.Text:=floattostr(strtofloat(temp1)-strtofloat(edit1.text));
temp1:=edit1.text;
end
else if flag=4 then //若之前是"/"号
begin
if edit1.text='0' then
begin
edit1.text:='除数不能为0';
edit1.Enabled:=false;
end
else
begin
edit1.Text:=floattostr(strtofloat(temp1)/strtofloat(edit1.text));
temp1:=edit1.text;
end;
end
else
begin
if flag3=0 then //若第一次输入“-”号
begin
if edit1.text='' then temp1:='0'
else
temp1:=edit1.Text; //第一个参加运算的数
edit1.Clear;
end
else
begin
if flag3=1 then //如果连续按多次"-"号,不处理。
else
begin
if edit1.Text=''then temp3:=0
else
temp3:=strtofloat(edit1.text); //第二个参加运算的数
edit1.Text:=floattostr(strtofloat(temp1)*temp3);
temp1:=edit1.text;
end;
end;
end;
flag3:=1; //按下一次"-"号后就不是第一次了
flag:=3; //标志位为2,减法
B:=true; //重新按下不同运算的“=”号。
buffer:=flag;
C:=0;
end;
procedure TForm1.SpeedButton7Click(Sender: TObject); //除法处理过程
begin
if edit1.text='' then edit1.Text:='0';
if flag=1 then //若之前是"+"号
begin
edit1.Text:=floattostr(strtofloat(temp1)+strtofloat(edit1.text));
temp1:=edit1.text;
end
else if flag=3 then //若之前是"*"号
begin
edit1.Text:=floattostr(strtofloat(temp1)*strtofloat(edit1.text));
temp1:=edit1.text;
end
else if flag=2 then //若之前是"-"号
begin
edit1.Text:=floattostr(strtofloat(temp1)-strtofloat(edit1.text));
temp1:=edit1.text;
end
else
begin
if flag3=0 then //若第一次输入“-”号
begin
if edit1.text='' then temp1:='0'
else
temp1:=edit1.Text; //第一个参加运算的数
edit1.Clear;
end
else
begin
if flag3=1 then //如果连续按多次"-"号,不处理。
else
begin
if edit1.Text=''then temp3:=0
else
temp3:=strtofloat(edit1.text); //第二个参加运算的数
if temp3=0 then
begin
edit1.text:='除数不能为0';
edit1.Clear;
edit1.Enabled:=false;
end
else
begin
edit1.Text:=floattostr(strtofloat(temp1)/temp3);
temp1:=edit1.text;
end;
end;
end;
end;
flag3:=1; //按下一次"-"号后就不是第一次了
flag:=4; //标志位为2,减法
B:=true; //重新按下不同运算的“=”号。
buffer:=flag;
C:=0;
end;
procedure TForm1.SpeedButton8Click(Sender: TObject); //开平方处理过程
var s:real ;
begin
if edit1.Text='' then
else
begin
s:=strtofloat(edit1.Text);
edit1.text:=floattostr(sqrt(s));
end;
end;
procedure TForm1.SpeedButton28Click(Sender: TObject); //倒数处理过程
begin
if (edit1.text='0') or (edit1.text='') then
edit1.Clear
else
edit1.Text:=floattostr (1/strtofloat(edit1.text) );
C:=0;
end;
procedure TForm1.SpeedButton33Click(Sender: TObject); //按下"="号的处理过程
begin
flag2:=0; //判断除数是否为0
flag3:=0; //当按下等号时,输入的运算符又只算第一次
if temp1='' then
else if B=true then //如果是第一次按“=”号
begin
if edit1.text='' then temp3:=strtofloat(temp1)//如果第二个数十空值,完成自运算
else
temp3:=strtofloat(edit1.text); //按“=”号之前输入的第二个参加运算的数
case flag of
1:temp2:=strtofloat(temp1)+temp3;
2:temp2:=strtofloat(temp1)-temp3;
3:temp2:=temp3*strtofloat(temp1);
4: if temp3=0 then
begin
flag2:=1 ;
edit1.enabled:=false ;
end
else
temp2:=strtofloat(temp1)/temp3;
end ;
end
else
case buffer of
1:temp2:=temp3+strtofloat(edit1.Text);
2:temp2:=strtofloat(edit1.Text)-temp3;
3:temp2:=strtofloat(edit1.Text)*temp3;
4: if temp3=0 then
begin
flag2:=1 ;
edit1.enabled:=false ;
end
else
temp2:=strtofloat(edit1.Text)/temp3;
end;
if flag2=1 then edit1.Text:= '除数不能为0'
else
edit1.Text:=floattostr(temp2);
B:=false; //按下后就不是第一次按下"="号了
C:=0;
flag:=0;
end;
procedure TForm1.c1Click(Sender: TObject);
begin
plate:=edit1.text;
end;
procedure TForm1.P1Click(Sender: TObject);
begin
edit1.Text:=plate;
end;
procedure TForm1.A1Click(Sender: TObject);
begin
form2.show();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -