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

📄 main.pas

📁 本程序是一个简易的计算器源代码。具有一般计算器的所有功能。
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  Button45.Top:=top+height*2;
  Button45.left:=left1+width*2;
  Button46.Visible:=true;
  Button46.Top:=top+height*3;
  Button46.left:=left1+width*2;
  Button47.Visible:=true;
  Button47.Top:=top+height*4;
  Button47.left:=left1+width*2;
  Button48.Visible:=true;
  Button48.Top:=top+height*5;
  Button48.left:=left1+width*2;
  //第四列按键
  Button49.Visible:=true;
  Button49.Top:=top+height;
  Button49.left:=left1+width*3;
  Button50.Visible:=true;
  Button50.Top:=top+height*2;
  Button50.left:=left1+width*3;
  Button51.Visible:=true;
  Button51.Top:=top+height*3;
  Button51.left:=left1+width*3;
  Button52.Visible:=true;
  Button52.Top:=top+height*4;
  Button52.left:=left1+width*3;
  Button53.Visible:=true;
  Button53.Top:=top+height*5;
  Button53.left:=left1+width*3;
  //第五列按键
  Button54.Visible:=true;
  Button54.Top:=top+height;
  Button54.left:=left1+width*4;
  Button55.Visible:=true;
  Button55.Top:=top+height*2;
  Button55.left:=left1+width*4;
  Button56.Visible:=true;
  Button56.Top:=top+height*3;
  Button56.left:=left1+width*4;
  Button57.Visible:=true;
  Button57.Top:=top+height*4;
  Button57.left:=left1+width*4;
  Button58.Visible:=true;
  Button58.Top:=top+height*5;
  Button58.left:=left1+width*4;
  //第六列按键
  Button4.Visible:=true;
  Button4.Top:=top+height;
  Button4.left:=left2;
  Button10.Visible:=true;
  Button10.Top:=top+height*2;
  Button10.left:=left2;
  Button16.Visible:=true;
  Button16.Top:=top+height*3;
  Button16.left:=left2;
  Button22.Visible:=true;
  Button22.Top:=top+height*4;
  Button22.left:=left2;
  Button28.Visible:=true;
  Button28.Top:=top+height*5;
  Button28.left:=left2;
  //第七列按键
  Button5.Visible:=true;
  Button5.Top:=top+height;
  Button5.left:=left2+width;
  Button11.Visible:=true;
  Button11.Top:=top+height*2;
  Button11.left:=left2+width;
  Button17.Visible:=true;
  Button17.Top:=top+height*3;
  Button17.left:=left2+width;
  Button23.Visible:=true;
  Button23.Top:=top+height*4;
  Button23.left:=left2+width;
  Button29.Visible:=true;
  Button29.Top:=top+height*5;
  Button29.left:=left2+width;
  //第八列按键
  Button6.Visible:=true;
  Button6.Top:=top+height;
  Button6.left:=left2+width*2;
  Button12.Visible:=true;
  Button12.Top:=top+height*2;
  Button12.left:=left2+width*2;
  Button18.Visible:=true;
  Button18.Top:=top+height*3;
  Button18.left:=left2+width*2;
  Button24.Visible:=true;
  Button24.Top:=top+height*4;
  Button24.left:=left2+width*2;
  Button30.Visible:=true;
  Button30.Top:=top+height*5;
  Button30.left:=left2+width*2;
  //第九列按键
  Button7.Visible:=true;
  Button7.Top:=top+height;
  Button7.left:=left2+width*3;
  Button13.Visible:=true;
  Button13.Top:=top+height*2;
  Button13.left:=left2+width*3;
  Button19.Visible:=true;
  Button19.Top:=top+height*3;
  Button19.left:=left2+width*3;
  Button25.Visible:=true;
  Button25.Top:=top+height*4;
  Button25.left:=left2+width*3;
  Button31.Visible:=true;
  Button31.Top:=top+height*5;
  Button31.left:=left2+width*3;
  //第十列按键
  Button8.Visible:=true;
  Button8.Top:=top+height;
  Button8.left:=left2+width*4;
  Button14.Visible:=true;
  Button14.Top:=top+height*2;
  Button14.left:=left2+width*4;
  Button20.Visible:=true;
  Button20.Top:=top+height*3;
  Button20.left:=left2+width*4;
  Button26.Visible:=true;
  Button26.Top:=top+height*4;
  Button26.left:=left2+width*4;
  Button32.Visible:=true;
  Button32.Top:=top+height*5;
  Button32.left:=left2+width*4;
  //第十一列按键
  Button9.Visible:=true;
  Button9.Top:=top+height;
  Button9.left:=left2+width*5;
  Button15.Visible:=true;
  Button15.Top:=top+height*2;
  Button15.left:=left2+width*5;
  Button21.Visible:=true;
  Button21.Top:=top+height*3;
  Button21.left:=left2+width*5;
  Button27.Visible:=true;
  Button27.Top:=top+height*4;
  Button27.left:=left2+width*5;
  Button33.Visible:=true;
  Button33.Top:=top+height*5;
  Button33.left:=left2+width*5;
  //屏蔽其他没用按钮
  Button59.Visible:=false;
  Button60.Visible:=false;
  if N10.Checked then
    checkHex
  else if N11.Checked then
    CheckAlgorism
  else if N12.Checked then
    checkOctavo
  else
    checkbinary;
end;
procedure TCalculator_Form.FormActivate(Sender: TObject);
begin
  edit1.UseRightToLeftAlignment;
  start_flag:=false;
  float_flag:=false;
  n1_flag:=false;
  mem_flag:=false;
  if n7.Checked then
  begin
    ScienticToStardard;
    haob:=10;
  end
  else
  begin
      StardardToScientic;
      if N10.Checked then
        haob:=16
      else if n11.checked then
        haob:=10
      else if n12.Checked then
        haob:=8
      else
        haob:=2;
  end;
  Button35.Enabled:=false;
  Button36.Enabled:=false;
  Button37.Enabled:=false;
  Button38.Enabled:=false;
  stat_count:=0;
end;

procedure TCalculator_Form.N7Click(Sender: TObject);
begin
  ScienticToStardard;
end;

procedure TCalculator_Form.N8Click(Sender: TObject);
begin
  StardardToScientic;
end;
procedure TCalculator_Form.StardardToScientic;
begin
  N7.Checked:=false;
  N8.Checked:=true;
  N11.Enabled:=true;
  N12.Enabled:=true;
  N13.Enabled:=true;
  N10.enabled:=true;
  N14.Enabled:=true;
  N15.Enabled:=true;
  N16.Enabled:=true;
  Scienticshow;
end;
procedure TCalculator_Form.ScienticToStardard;
begin
  N7.Checked:=true;
  N8.Checked:=false;
  N11.Enabled:=false;
  N12.Enabled:=false;
  N13.Enabled:=false;
  N10.enabled:=false;
  N15.Enabled:=false;
  N16.Enabled:=false;
  Stardardshow;
end;
procedure TCalculator_Form.CheckAlgorism;
var
  s:string;
  x:real;
begin
  Button4.Enabled:=true;
  Button5.Enabled:=true;
  Button6.Enabled:=true;
  Button10.Enabled:=true;
  Button11.Enabled:=true;
  Button12.Enabled:=true;
  Button17.Enabled:=true;
  Button18.Enabled:=true;
  Button28.Enabled:=false;
  Button29.Enabled:=false;
  Button30.Enabled:=false;
  Button31.Enabled:=false;
  Button32.Enabled:=false;
  Button33.Enabled:=false;
  N10.Checked:=false;
  N11.Checked:=true;
  N12.Checked:=false;
  N13.Checked:=false;
  RadioButton2.Checked:=true;
  RadioButton5.Enabled:=true;
  RadioButton6.Enabled:=true;
  N15.Enabled:=true;
  N16.Enabled:=true;
  Button39.Enabled:=true;
  Button40.Enabled:=true;
  Button41.Enabled:=true;
  Button42.Enabled:=true;
  Button43.Enabled:=true;
  Button45.Enabled:=true;
  x:=StrToNum(edit1.text,haob);
  s:=numtostr(x,10);
  edit1.text:=s;
  haob:=10;
end;
procedure TCalculator_Form.CheckBinary;
var
  s:string;
begin
  Button4.Enabled:=false;
  Button5.Enabled:=false;
  Button6.Enabled:=false;
  Button10.Enabled:=false;
  Button11.Enabled:=false;
  Button12.Enabled:=false;
  Button17.Enabled:=false;
  Button18.Enabled:=false;
  Button28.Enabled:=false;
  Button29.Enabled:=false;
  Button30.Enabled:=false;
  Button31.Enabled:=false;
  Button32.Enabled:=false;
  Button33.Enabled:=false;
  N10.Checked:=false;
  N11.Checked:=false;
  N12.Checked:=false;
  N13.Checked:=true;
  RadioButton4.Checked:=true;
  RadioButton5.Enabled:=false;
  RadioButton6.Enabled:=false;
  N15.Enabled:=false;
  N16.Enabled:=false;
  Button39.Enabled:=false;
  Button40.Enabled:=false;
  Button41.Enabled:=false;
  Button42.Enabled:=false;
  Button43.Enabled:=false;
  Button45.Enabled:=false;
  s:=numtostr(StrToNum(edit1.text,haob),2);
  edit1.text:=s;
  haob:=2;
end;
procedure TCalculator_Form.CheckHex;
var
  s:string;
begin
  Button4.Enabled:=true;
  Button5.Enabled:=true;
  Button6.Enabled:=true;
  Button10.Enabled:=true;
  Button11.Enabled:=true;
  Button12.Enabled:=true;
  Button17.Enabled:=true;
  Button18.Enabled:=true;
  Button28.Enabled:=true;
  Button29.Enabled:=true;
  Button30.Enabled:=true;
  Button31.Enabled:=true;
  Button32.Enabled:=true;
  Button33.Enabled:=true;
  N10.Checked:=true;
  N11.Checked:=false;
  N12.Checked:=false;
  N13.Checked:=false;
  RadioButton1.Checked:=true;
  RadioButton5.Enabled:=false;
  RadioButton6.Enabled:=false;
  N15.Enabled:=false;
  N16.Enabled:=false;
  Button39.Enabled:=false;
  Button40.Enabled:=false;
  Button41.Enabled:=false;
  Button42.Enabled:=false;
  Button43.Enabled:=false;
  Button45.Enabled:=false;
  s:=numtostr(StrToNum(edit1.text,haob),16);
  edit1.text:=s;
  haob:=16;
end;
procedure TCalculator_Form.CheckOctavo;
var
  s:string;
begin
  Button4.Enabled:=true;
  Button5.Enabled:=false;
  Button6.Enabled:=false;
  Button10.Enabled:=true;
  Button11.Enabled:=true;
  Button12.Enabled:=true;
  Button17.Enabled:=true;
  Button18.Enabled:=true;
  Button28.Enabled:=false;
  Button29.Enabled:=false;
  Button30.Enabled:=false;
  Button31.Enabled:=false;
  Button32.Enabled:=false;
  Button33.Enabled:=false;
  N10.Checked:=false;
  N11.Checked:=false;
  N12.Checked:=true;
  N13.Checked:=false;
  RadioButton3.Checked:=true;
  RadioButton5.Enabled:=false;
  RadioButton6.Enabled:=false;
  N15.Enabled:=false;
  N16.Enabled:=false;
  Button39.Enabled:=false;
  Button40.Enabled:=false;
  Button41.Enabled:=false;
  Button42.Enabled:=false;
  Button43.Enabled:=false;
  Button45.Enabled:=false;
  s:=numtostr(StrToNum(edit1.text,haob),8);
  edit1.text:=s;
  haob:=8;
end;
procedure TCalculator_Form.Button4Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='7';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'7';
end;

procedure TCalculator_Form.Button3Click(Sender: TObject);
begin
    edit1.text:='0';
    start_flag:=false;
    float_flag:=false;
    n1_flag:=false;
    mem_flag:=false;
    stat_count:=0;
end;

procedure TCalculator_Form.Button5Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='8';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'8';
end;

procedure TCalculator_Form.Button6Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='9';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'9';
end;

procedure TCalculator_Form.Button10Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='4';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'4';
end;

procedure TCalculator_Form.Button11Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='5';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'5';
end;

procedure TCalculator_Form.Button12Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='6';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'6';
end;

procedure TCalculator_Form.Button16Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='1';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'1';
end;

procedure TCalculator_Form.Button17Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='2';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'2';
end;

procedure TCalculator_Form.Button18Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='3';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'3';
end;

procedure TCalculator_Form.Button22Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='0.';
        start_flag:=true;
        float_flag:=true
    end
    else
        edit1.text:=edit1.text+'0';
end;

procedure TCalculator_Form.Button24Click(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 TCalculator_Form.Button1Click(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 TCalculator_Form.Button59Click(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 TCalculator_Form.Button53Click(Sender: TObject);
var

⌨️ 快捷键说明

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