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

📄 unit1.pas

📁 类似计算器Calc.exe的软件
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, StdCtrls, ActnList, Clipbrd;

type
  TCalc_form = class(TForm)
    Panel1: TPanel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Bevel1: TBevel;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    Button18: TButton;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    H1: TMenuItem;
    H2: TMenuItem;
    N9: TMenuItem;
    A1: TMenuItem;
    Button19: TButton;
    Button20: TButton;
    Button21: TButton;
    Button22: TButton;
    Button23: TButton;
    Button24: TButton;
    Button25: TButton;
    Button26: TButton;
    Button27: TButton;
    ActionList1: TActionList;
    paste: TAction;
    copy: TAction;
    A2: TMenuItem;
    A3: TMenuItem;
    procedure N6Click(Sender: TObject);
    procedure FormCreate(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 Button19Click(Sender: TObject);
    procedure Button21Click(Sender: TObject);
    procedure Button22Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button23Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure copyExecute(Sender: TObject);
    procedure pasteExecute(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button24Click(Sender: TObject);
    procedure Button25Click(Sender: TObject);
    procedure Button26Click(Sender: TObject);
    procedure Button27Click(Sender: TObject);
    procedure A3Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Calc_form: TCalc_form;
  start_flag,float_flag,mem_flag: Boolean; //设置开始和浮点标志
  n: Integer;
  Temp1: String;
  Temp2,mem: real;


implementation

uses Unit2;

{$R *.dfm}

procedure TCalc_form.N6Click(Sender: TObject);
begin
  Calc_form.Width:=260;
  Calc_form.Height:=244;
  //菜单查看里的 打勾标记
  N5.Checked:=false;
  N6.Checked:=true;
//设置透明
//Form1.AlphaBlend:=true;
//Form1.AlphaBlendValue:=99;
//设置标准型按钮的位置
  button1.Visible:=true;
  button1.Left:=56;
  button1.Top:=128;
  button4.Visible:=true;
  button4.Left:=56;
  button4.Top:=96;
  button7.Visible:=true;
  button7.Left:=56;
  button7.Top:=64;
  button19.Visible:=true;
  button19.Left:=56;
  button19.Top:=160;
  button2.Visible:=true;
  button2.Left:=94;
  button2.Top:=128;
  button5.Visible:=true;
  button5.Left:=94;
  button5.Top:=96;
  button8.Visible:=true;
  button8.Left:=94;
  button8.Top:=64;
  button20.Visible:=true;
  button20.Left:=94;
  button20.Top:=160;
  button3.Visible:=true;
  button3.Left:=132;
  button3.Top:=128;
  button6.Visible:=true;
  button6.Left:=132;
  button6.Top:=96;
  button9.Visible:=true;
  button9.Left:=132;
  button9.Top:=64;
  button21.Visible:=true;
  button21.Left:=132;
  button21.Top:=160;
  button13.Visible:=true;
  button13.Left:=170;
  button13.Top:=64;
  button14.Visible:=true;
  button14.Left:=170;
  button14.Top:=96;
  button15.Visible:=true;
  button15.Left:=170;
  button15.Top:=128;
  button22.Visible:=true;
  button22.Left:=170;
  button22.Top:=160;
  button16.Visible:=true;
  button16.Left:=209;
  button16.Top:=64;
  button17.Visible:=true;
  button17.Left:=209;
  button17.Top:=96;
  button18.Visible:=true;
  button18.Left:=209;
  button18.Top:=128;
  button23.Visible:=true;
  button23.Left:=209;
  button23.Top:=160;
  button10.Visible:=true;
  button10.Left:=56;
  button10.Top:=32;
  button11.Visible:=true;
  button11.Left:=136;
  button11.Top:=32;
  button12.Visible:=true;
  button12.Left:=192;
  button12.Top:=32;
  button24.Visible:=true;
  button24.Left:=13;
  button24.Top:=64;
  button25.Visible:=true;
  button25.Left:=13;
  button25.Top:=96;
  button26.Visible:=true;
  button26.Left:=13;
  button26.Top:=128;
  button27.Visible:=true;
  button27.Left:=13;
  button27.Top:=160;
  bevel1.Visible:=true;
  bevel1.Left:=16;
  bevel1.Top:=32;
end;

procedure TCalc_form.FormCreate(Sender: TObject);
begin
  //EDIT里文本右对齐
  SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or Es_right);
end;

procedure TCalc_form.Button1Click(Sender: TObject);
begin
    if start_flag = False then
    begin
        Edit1.Text := '1';
        start_flag := True
    end
    else
        Edit1.Text := Edit1.Text + '1';
end;

procedure TCalc_form.Button2Click(Sender: TObject);
begin
    if start_flag = False then
    begin
        Edit1.Text := '2';
        start_flag := True
    end
    else
        Edit1.Text := Edit1.Text + '2';
end;

procedure TCalc_form.Button3Click(Sender: TObject);
begin
    if start_flag = False then
    begin
        Edit1.Text := '3';
        start_flag := True
    end
    else
        Edit1.Text := Edit1.Text + '3';
end;

procedure TCalc_form.Button4Click(Sender: TObject);
begin
    if start_flag = False then
    begin
        Edit1.Text := '4';
        start_flag := True
    end
    else
        Edit1.Text := Edit1.Text + '4';
end;

procedure TCalc_form.Button5Click(Sender: TObject);
begin
    if start_flag = False then
    begin
        Edit1.Text := '5';
        start_flag := True
    end
    else
        Edit1.Text := Edit1.Text + '5';
end;

procedure TCalc_form.Button6Click(Sender: TObject);
begin
    if start_flag = False then
    begin
        Edit1.Text := '6';
        start_flag := True
    end
    else
        Edit1.Text := Edit1.Text + '6';
end;

procedure TCalc_form.Button7Click(Sender: TObject);
begin
    if start_flag = False then
    begin
        Edit1.Text := '7';
        start_flag := True
    end
    else
        Edit1.Text := Edit1.Text + '7';
end;

procedure TCalc_form.Button8Click(Sender: TObject);
begin
    if start_flag = False then
    begin
        Edit1.Text := '8';
        start_flag := True
    end
    else
        Edit1.Text := Edit1.Text + '8';
end;

procedure TCalc_form.Button9Click(Sender: TObject);
begin
    if start_flag = False then
    begin
        Edit1.Text := '9';
        start_flag := True
    end
    else
        Edit1.Text := Edit1.Text + '9';
end;

procedure TCalc_form.Button19Click(Sender: TObject);
begin
    if start_flag = False then //当开始标志为 False
    begin
        Edit1.Text := '0.';    //显示0.
        start_flag := True;    //开始标志为True
        float_flag := True     //浮点标志为True
    end
    else                       //否则输出0
        Edit1.Text := Edit1.Text + '0';
end;

procedure TCalc_form.Button21Click(Sender: TObject);
begin
    if float_flag = False then
    begin
        if start_flag = False then
        begin
            Edit1.Text := '0.';
            start_flag := True;
            float_flag := True
        end
        else
        begin
            Edit1.Text := Edit1.Text + '.';
            float_flag := True
        end;
    end;
end;

procedure TCalc_form.Button22Click(Sender: TObject);
begin
  n := 1;
  Temp1 := Edit1.Text;
  Edit1.Clear;
end;

procedure TCalc_form.Button15Click(Sender: TObject);
begin
  n := 2;
  Temp1 := Edit1.Text;
  Edit1.Clear;
end;

procedure TCalc_form.Button14Click(Sender: TObject);
begin
  n := 3;
  Temp1 := Edit1.Text;
  Edit1.Clear;
end;

procedure TCalc_form.Button13Click(Sender: TObject);
begin
  n := 4;
  Temp1 := Edit1.Text;
  Edit1.Clear;
end;

procedure TCalc_form.Button23Click(Sender: TObject);
begin
  case n of
  1 : Temp2 := StrToFloat(Temp1) + StrToFloat(Edit1.Text);
  2 : Temp2 := StrToFloat(Temp1) - StrToFloat(Edit1.Text);
  3 : Temp2 := StrToFloat(Temp1) * StrToFloat(Edit1.Text);
  4 : if StrToFloat(Edit1.Text)=0 then
  begin
    Edit1.Text := '除数不能为0';
  Exit;
  end
  else
  Temp2 := StrToFloat(Temp1) / StrToFloat(Edit1.Text);
  end;
  Edit1.Text := FloatToStr(Temp2);
end;

procedure TCalc_form.Button20Click(Sender: TObject);
var
  num : real;
begin
  num := StrToFloat(Edit1.Text);
  num := -num;
  Edit1.Text:=FloaTtoStr(num);
end;

procedure TCalc_form.Button16Click(Sender: TObject);
var
  num : real;
begin
  num := StrToFloat(Edit1.Text);
  if num>=0 then
  begin
    num := Sqrt(num);
    Edit1.Text := FloaTtoStr(num);
  end
  else
        Application.MessageBox('该数开方出错,请检查!','提示信息',MB_OK)
end;


procedure TCalc_form.Button18Click(Sender: TObject);
var
  num : real;
begin
  num := StrToFloat(Edit1.Text);
  num := 1/num;
  Edit1.Text := FloaTtoStr(num);
end;

procedure TCalc_form.Button10Click(Sender: TObject);
var
  i,j : Integer;
  s1,s2 : String;
begin
    i := Edit1.Gettextlen();
    if i>1 then
    begin
       s1 := Edit1.Text;
       s2 := s1[i];
       Edit1.Text := '';
       for j := 1 to i-1 do
          Edit1.Text := Edit1.Text + s1[j];
       if s2 = '.' then
          float_flag := False;
    end
    else
    begin
        Edit1.Text := '0';
        start_flag := False;
    end;
end;


procedure TCalc_form.copyExecute(Sender: TObject);
begin
  Edit1.SelectAll;
  Edit1.CopyToClipboard;
end;

procedure TCalc_form.pasteExecute(Sender: TObject);
begin
  Edit1.PasteFromClipboard;
end;

procedure TCalc_form.Button12Click(Sender: TObject);
begin
  Edit1.Clear;
end;



procedure TCalc_form.Button24Click(Sender: TObject);
begin
  mem_flag := False;
end;

procedure TCalc_form.Button25Click(Sender: TObject);
begin
  mem := StrToFloat(Edit1.Text);
  mem_flag := True;
end;

procedure TCalc_form.Button26Click(Sender: TObject);
begin
    if mem_flag = True then
      Edit1.Text := FloatToStr(mem)
    else
      Application.MessageBox('没有数据存储,请检查!','提示信息',MB_OK);
end;

procedure TCalc_form.Button27Click(Sender: TObject);
begin
  if mem_flag = True then
    mem := mem + StrToFloat(Edit1.Text)
  else
  begin
    mem := StrToFloat(Edit1.Text);
    mem_flag := True;
  end;
end;

procedure TCalc_form.A3Click(Sender: TObject);
begin
  Form2.Show;
end;

end.

⌨️ 快捷键说明

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