📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
E1: TMenuItem;
c1: TMenuItem;
P1: TMenuItem;
V1: TMenuItem;
H1: TMenuItem;
H2: TMenuItem;
A1: TMenuItem;
Panel1: TPanel;
SpeedButton1: TSpeedButton;
Edit1: TEdit;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
SpeedButton13: TSpeedButton;
SpeedButton14: TSpeedButton;
SpeedButton15: TSpeedButton;
SpeedButton16: TSpeedButton;
SpeedButton17: TSpeedButton;
SpeedButton18: TSpeedButton;
SpeedButton19: TSpeedButton;
SpeedButton20: TSpeedButton;
SpeedButton21: TSpeedButton;
SpeedButton22: TSpeedButton;
SpeedButton23: TSpeedButton;
SpeedButton24: TSpeedButton;
SpeedButton25: TSpeedButton;
SpeedButton26: TSpeedButton;
SpeedButton27: TSpeedButton;
SpeedButton28: TSpeedButton;
SpeedButton29: TSpeedButton;
SpeedButton30: TSpeedButton;
SpeedButton31: TSpeedButton;
SpeedButton32: TSpeedButton;
SpeedButton33: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
procedure SpeedButton24Click(Sender: TObject);
procedure SpeedButton25Click(Sender: TObject);
procedure SpeedButton26Click(Sender: TObject);
procedure SpeedButton29Click(Sender: TObject);
procedure SpeedButton30Click(Sender: TObject);
procedure SpeedButton31Click(Sender: TObject);
procedure SpeedButton32Click(Sender: TObject);
procedure SpeedButton27Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton28Click(Sender: TObject);
procedure SpeedButton33Click(Sender: TObject);
procedure c1Click(Sender: TObject);
procedure P1Click(Sender: TObject);
procedure A1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
temp1:string; //用于存放你一个计算参数
temp3:real; //用于存放第二个计算参数
temp2:real; //用于存放计算结果
flag:integer=0; //加,减,乘,除 的标志位
flag2:integer=0; //判断除数是否为0的标志位
flag3:integer=0; // 是否多次按下运算符
fuhao:integer=0; //计算参数的符号
B: Boolean; //用以表示是否是第一次按下"="号
plate:string;//存放剪切板内容
buffer:integer; //用于保存flag,以便按"="时使用
C:integer=0; //用于规定每次输入只能有一个小数点
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Clear;
B:=true;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
var s:string;
begin
s:=edit1.Text;
delete(s,length(s),1);
edit1.Text:=s;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
edit1.text:='';
temp1:='';
temp2:=0;
temp3:=0;
edit1.Enabled:=true;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
edit1.text:='';
temp1:='';
temp2:=0;
temp3:=0;
edit1.Enabled:=true;
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
if flag3=1 then begin edit1.Clear;flag3:=-1; end;
if edit1.text='0' then edit1.text:='7'
else
edit1.text:=edit1.text+'7';
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
if flag3=1 then begin edit1.Clear;flag3:=-1; end;
if edit1.text='0' then edit1.text:='8'
else
edit1.text:=edit1.text+'8';
end;
procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
if flag3=1 then begin edit1.Clear;flag3:=-1; end;
if edit1.text='0' then edit1.text:='9'
else
edit1.text:=edit1.text+'9';
end;
procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
if flag3=1 then begin edit1.Clear;flag3:=-1; end;
if edit1.text='0' then edit1.text:='4'
else
edit1.text:=edit1.text+'4';
end;
procedure TForm1.SpeedButton10Click(Sender: TObject);
begin
if flag3=1 then begin edit1.Clear;flag3:=-1; end;
if edit1.text='0' then edit1.text:='5'
else
edit1.text:=edit1.text+'5';
end;
procedure TForm1.SpeedButton11Click(Sender: TObject);
begin
if flag3=1 then begin edit1.Clear;flag3:=-1; end;
if edit1.text='0' then edit1.text:='6'
else
edit1.text:=edit1.text+'6';
end;
procedure TForm1.SpeedButton24Click(Sender: TObject);
begin
if flag3=1 then //若第二次按下"+"号,清空edit1,并进行和运算
begin edit1.Clear;flag3:=-1; end;
if edit1.text='0' then edit1.text:='1'
else
edit1.text:=edit1.text+'1';
end;
procedure TForm1.SpeedButton25Click(Sender: TObject);
begin
if flag3=1 then begin edit1.Clear;flag3:=-1; end;
if edit1.text='0' then edit1.text:='2'
else
edit1.text:=edit1.text+'2';
end;
procedure TForm1.SpeedButton26Click(Sender: TObject);
begin
if flag3=1 then begin edit1.Clear;flag3:=-1; end;
if edit1.text='0' then edit1.text:='3'
else
edit1.text:=edit1.text+'3';
end;
procedure TForm1.SpeedButton29Click(Sender: TObject);
begin
if flag3=1 then begin edit1.Clear;flag3:=-1; end;
edit1.Text:=edit1.Text+'0';
end;
procedure TForm1.SpeedButton30Click(Sender: TObject);
var s:string ;
begin
if (edit1.text='')or (edit1.text='0') then fuhao:=-1
else if strtofloat(edit1.text)<0 then fuhao:=1//若小于0 ,则是 负数
else fuhao:=0; //若大于0 ,则是正数
if fuhao=0 then //若原来是正数,按后变负数
begin
edit1.text:='-'+edit1.Text;
fuhao:=1;
end
else // 若原来是负数,按后变正数
begin
s:=edit1.text;
delete(s,1,1);
edit1.text:=s;
fuhao:=0;
end;
end;
procedure TForm1.SpeedButton31Click(Sender: TObject);
begin
if edit1.text='' then edit1.text:='0.'
else if C=1 then
else
edit1.Text:=edit1.Text+'.';
C:=1;
end;
procedure TForm1.SpeedButton32Click(Sender: TObject); //加法处理过程
begin
if edit1.text='' then edit1.Text:='0';
if flag=2 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -