⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 一个简易计算器
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    Edit1: TEdit;
    procedure FormClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses Unit2;
{$R *.dfm}

var result,source_1,source_2:real;
var s_result,s_source_1,s_source_2:string;
var operation_symbol:integer;
var point_flag:boolean;
var input_2: boolean;
var operation_over:boolean;

procedure display_refresh();
var len:integer;
var i:integer;
begin
 s_result:=floattostr(result);
 len:=length(s_result);
 for i:=0 to 25-len do
  begin
   s_result:=' '+s_result;
  end;
  form1.edit1.Text:=s_result;
end;

procedure input_number(number: integer);
begin
 if operation_over=true then
  begin
   form1.Button11.Click;
   operation_over:=false;
  end;
 if (number>=0) and (number<10) then
  begin
   if operation_symbol=0 then
    begin
    s_source_1:=s_source_1+inttostr(number);
    result:=strtofloat(s_source_1);
    source_2:=result;
    display_refresh();
    input_2:=false;
    end
   else
    begin
     s_source_2:=s_source_2+inttostr(number);
     result:=strtofloat(s_source_2);
     display_refresh();
     input_2:=true;
    end;
  end;
 if number=10 then
  begin
   if operation_symbol=0 then
    begin
     s_source_1:=s_source_1+'.';
     result:=strtofloat(s_source_1);
     source_2:=result;
     display_refresh();
    end
    else
     begin
     s_source_2:=s_source_2+'.';
     result:=strtofloat(s_source_2);
     display_refresh();
    end;
  end;
  if number=11 then
  begin
   if operation_symbol=0 then
    begin
    end
    else
    begin
    end;
  end;
end;

procedure TForm1.FormClick(Sender: TObject);
begin
  display_refresh();
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   input_number(1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
     input_number(2);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
       input_number(3);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
     input_number(4);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
     input_number(5);
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
    input_number(6);
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
    input_number(7);
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
     input_number(8);
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
     input_number(9);
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
     input_number(0);
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
 s_source_1:='0';
 s_source_2:='0';
 s_result:='0';
 result:=0;
 point_flag:=false;
 operation_symbol:=0;
 input_2:=false;
 display_refresh();
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
 if (operation_symbol >0) and (input_2 = true) then
  begin
   button15.Click;
  end;
 operation_symbol:=1;
 point_flag:=false;
 operation_over:=false;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
if (operation_symbol >0) and (input_2 = true) then
  begin
   button15.Click;
  end;
 operation_symbol:=2;
 point_flag:=false;
 operation_over:=false;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  if (operation_symbol >0) and (input_2 = true) then
  begin
   button15.Click;
  end;
 operation_symbol:=3;
 point_flag:=false;
 operation_over:=false;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
 if (operation_symbol >0) and (input_2 = true) then
  begin
   button15.Click;
  end;
 operation_symbol:=4;
 point_flag:=false;
 operation_over:=false;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
   operation_over:=true;
 source_1:=strtofloat(s_source_1);
 if input_2 then
  begin
   source_2:=strtofloat(s_source_2);
  end
 else
  begin
  end;
 case operation_symbol of
  0:
   begin
    result:=source_1;
    display_refresh();
    exit;
   end;
  1:
   begin
    result:=source_1+source_2;
    display_refresh();
   end;
  2:
   begin
    result:=source_1-source_2;
    display_refresh();
   end;
  3:
   begin
    result:=source_1 * source_2;
    display_refresh();
   end;
  4:
   begin
    if source_2 = 0 then
     begin
      messagebox(form1.Handle,'0 不能做除数','错误!',0);
      exit;
     end;
    result:=source_1 / source_2;
    display_refresh();
   end;
  end;
 input_2:=false;
 source_1:=result;
 s_source_1:=floattostr(result);
 s_source_2:='0';
 point_flag:=false;
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
   if point_flag=false then
  begin
   input_number(10);
   point_flag:=true;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 button10.Click;
end;



end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -