如何用delphi做一个计算器?

2024-05-12

1. 如何用delphi做一个计算器?

又遇到计算器,前两天刚做过一个,不过百度不让发网址,有兴趣的留下e-mail我给你发一个吧,只有加减乘除的功能啊

如何用delphi做一个计算器?

2. 求:用delphi编写一个计算器!~

so easy
我只写思路 
(0-9 . 10个键, 一个eidt1.text 做显示屏, + - * / = 归零 6个功能键)
var 
n:integer //四则运算
s1:string;

+; s1:=edit1.text a:=1 edit1.clear;//把+号前面字符串存入s1
-: s1:=edit1.text a:=2 edit1.clear;
*: s1:=edit1.text a:=3 edit1.clear;
/: s1:=edit1.text a:=4 edit1.clear;
归零:edit1.clear; //不显示 也可以显示0 不过0-9 要多了一个if
0-9:  edit1.text=edit1.text+(0-9) //
.:    if edit1.text=''then                                     edit1.text='0.'   else  edit1.text=edit1.text+'.';
// 前面的是按钮 懒的写全 带冒号的全是按钮点击事件 后面是=号的代码

begin
case n of
1: edit1.text:=inttostr(strtoint(s1)+strtoint(edit1.text));
2: edit1.text:=inttostr(strtoint(s1)-strtoint(edit1.text));
3: edit1.text:=inttostr(strtoint(s1)*strtoint(edit1.text));
4: begin
if edit1.text=0 then showmessage('不能被整除')
   else edit1.text:=inttostr(strtoint(s1)/strtoint(edit1.text));
   end;
end;
end;

3. 用delphi编写一个计算器 急用 谢谢!!!

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    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;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    procedure Button4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure SetEditText(info: string);
    { Private declarations }
  public
    { Public declarations }
  end;
type //自定义一个Tcompute的类

  Tcompute = object
  private //保护类中成员数据的安全

    temp1: double;
    temp2: double;
    temp3: double;
    sign: Char;

  public //把类中的成员函数进行共享


    function Add(x: double; y: double): Double;
    function Sub(x: double; y: double): Double;
    function Mult(x: double; y: double): Double;
    function Dived(x: double; y: double): Double;

  end;
var
  Form1: TForm1;
  Info: Tcompute; //声明Info是类Tcompute的对象
  oldinfo:string;


implementation

function Tcompute.Add(x: double; y: double): Double; //进行类的定义与实现

begin
  Result := x + y;
end;

function Tcompute.Sub(x: double; y: double): Double;
begin
  Result := x - y;
end;

function Tcompute.Mult(x: double; y: double): Double;
begin
  Result := x * y;
end;

function Tcompute.Dived(x: double; y: double): Double;
begin
  if (y = 0) then begin
    Form1.Edit1.text:='1111111111';
     //ShowMessage('除数不能为0!'); //这里判断除数不能为0
    Result := x;
  end else
    Result := x / y;
end;

{$R *.dfm}

procedure TForm1.Button4Click(Sender: TObject);
begin
  oldinfo := '';
  SetEditText('');
  Info.sign := ' ';
  Info.temp1 := 0;
  Info.temp2 := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetEditText('7');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SetEditText('8');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  SetEditText('9');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  SetEditText('4');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  SetEditText('5');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  SetEditText('6');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  SetEditText('1');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  SetEditText('2');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  SetEditText('3');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
  SetEditText('0');
  Info.temp1 := StrTofloat(Edit1.text);
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  Button17Click(nil);
  Info.temp2 := Info.temp1;
  Info.sign := '+';
  oldinfo := '';
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  Button17Click(nil);
  Info.temp2 := Info.temp1;
  Info.sign := '-';
  oldinfo := '';
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
  Button17Click(nil);
  Info.temp2 := Info.temp1;
  Info.sign := '*';
  oldinfo := '';
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
  Button17Click(nil);
  Info.temp2 := Info.temp1;
  Info.sign := '/';
  oldinfo := '';
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
  if Info.sign' ' then oldinfo := '';
  if (Info.sign = '+') then
    SetEditText(FloatToStr(Info.Add(Info.temp2, Info.temp1)))
  else if (Info.sign = '-') then
    SetEditText(FloatToStr(Info.Sub(Info.temp2, Info.temp1)))
  else if (Info.sign = '*') then
    SetEditText(FloatToStr(Info.Mult(Info.temp2, Info.temp1)))
  else if (Info.sign = '/') then
    SetEditText(FloatToStr(Info.Dived(Info.temp2, Info.temp1)));
  if Edit1.Text'' then
    Info.temp1 := StrToFloat(Edit1.Text);
  Info.sign := ' ';
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  SetEditText('.');
  Info.temp1 := StrToFloat(Edit1.Text);
end;

procedure TForm1.SetEditText(info:string);
begin
  Edit1.Text := oldinfo + info;
  oldinfo := Edit1.Text;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  oldinfo := '';
end;

end.

用delphi编写一个计算器 急用 谢谢!!!

4. 用Delphi做计算器

var
  Form1: TForm1;
  i,j,k:real;
  jia,jian,cheng,chu,dengyu:Boolean;
  a,zf:Boolean;
implementation


{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='1'
  else MaskEdit1.Text:=maskEdit1.Text+'1';

  j:=StrToFloat(MaskEdit1.Text);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='2'
  else MaskEdit1.Text:=MaskEdit1.Text+'2';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin     
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='2'
  else MaskEdit1.Text:=MaskEdit1.Text+'3';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='4'
  else MaskEdit1.Text:=MaskEdit1.Text+'4';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='5'
  else MaskEdit1.Text:=MaskEdit1.Text+'5';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='6'
  else MaskEdit1.Text:=MaskEdit1.Text+'6';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='7'
  else MaskEdit1.Text:=MaskEdit1.Text+'7';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='8'
  else MaskEdit1.Text:=MaskEdit1.Text+'8';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='9'
  else MaskEdit1.Text:=MaskEdit1.Text+'9';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  if a=True
  then
    begin
      MaskEdit1.Clear;
      a:=False;
    end;

  if MaskEdit1.Text='0'
  then MaskEdit1.Text:='0'
  else MaskEdit1.Text:=MaskEdit1.Text+'0';

  j:=StrToFloat(MaskEdit1.Text);
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
  a:=True;
  jia:=True;
  jian:=False;
  cheng:=False;
  chu:=False;
  i:=StrToFloat(MaskEdit1.text);
end;

procedure TForm1.Button20Click(Sender: TObject);
begin
  dengyu:=True;
  a:=True;
  MaskEdit1.Clear;
  if jia=True
  then MaskEdit1.Text:=FloatToStr(i+j)
  else if jian=True
       then MaskEdit1.Text:=FloatToStr(i-j)
  else if cheng=True
       then MaskEdit1.Text:=FloatToStr(i*j)
  else if chu=True
       then
         if j0
         then MaskEdit1.Text:=FloatToStr(i/j)
         else ShowMessage('0不能做除数');

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  a:=False;
  jia:=False;
  jian:=False;
  cheng:=False;
  chu:=False;
  MaskEdit1.Text:='0';
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  a:=True;
  jia:=False;
  jian:=True;
  cheng:=False;
  chu:=False;
  i:=StrToFloat(MaskEdit1.text);
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
  a:=True;
  jia:=False;
  jian:=False;
  cheng:=True;
  chu:=False;
  i:=StrToFloat(MaskEdit1.text);
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
  a:=True;
  jia:=False;
  jian:=False;
  cheng:=False;
  chu:=True;
  i:=StrToFloat(MaskEdit1.text);
end;

procedure TForm1.Button17Click(Sender: TObject);
var
  s:string;
begin
  MaskEdit1.Text:=copy(MaskEdit1.Text,1,length(MaskEdit1.Text)-1);
  with MaskEdit1 do
  begin
    if (Text='') 
    then Text:='0';
  end;
end;

procedure TForm1.Button18Click(Sender: TObject);
begin
  a:=True;
  jia:=True;
  jian:=False;
  cheng:=False;
  chu:=False;
  i:=0;
  j:=0;
  MaskEdit1.Text:='0';
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  zf:=True;
  zf:=not zf;
  if zf=True
  then MaskEdit1.Text:=FloatToStr(0+StrToFloat(maskedit1.Text))
  else MaskEdit1.Text:=FloatToStr(0-StrToFloat(maskedit1.Text));
   
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  MaskEdit1.Text:=MaskEdit1.Text+'.';
end;

procedure TForm1.Button19Click(Sender: TObject);
begin
  a:=True;
  MaskEdit1.Text:=FloatToStr(1/strtofloat(MaskEdit1.Text));
end;

procedure TForm1.N2Click(Sender: TObject);
begin
  Button13.Click;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
  Button14.Click;
end;

procedure TForm1.N4Click(Sender: TObject);
begin
  Button15.Click;
end;

procedure TForm1.N5Click(Sender: TObject);
begin
  Button16.Click;
end;

procedure TForm1.N10Click(Sender: TObject);
begin
  Button20.Click;
end;

procedure TForm1.N7Click(Sender: TObject);
begin
  Application.CreateForm(tForm2,form2);
  Form2.ShowModal;
end;

procedure TForm1.N8Click(Sender: TObject);
begin
  Form3.ShowModal;
  //Application.MessageBox('这也要帮助!你也太没水平了吧!','鄙视你',MB_OK);
end;

procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  //如果用户输入的不是0-9,退格键和回车键则输入的字符无效
  if not (Key in['0'..'9',#8,#13])
  then key:=#0;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Length(MaskEdit1.Text)>30
  then
    begin
      if Key=#8
      then Button17.Click;
      Key:=#0;
    end; 

  Form1.KeyPreview:=True;
  if Key in ['1']
  then Button1.Click
  else if Key in['2']
       then Button2.Click
  else if Key in['3']
       then Button3.Click
  else if Key in['4']
       then Button4.Click
  else if Key in['5']
       then Button5.Click
  else if key in ['6']
       then Button6.Click
  else if Key in ['7']
       then Button7.Click
  else if key in ['8']
       then Button8.Click
  else if key in ['9']
       then button9.Click
  else if key in ['0']
       then button10.Click
  else if Key=#107
       then Button13.Click
  else if Key=#109
       then Button14.Click
  else if Key=#106
       then Button15.Click
  else if Key=#111
       then Button16.Click
  else if Key in [#103,#13,#187]
       then Button20.Click
  else if Key =#8
       then Button17.Click
  else if Key =#46
       then button18.Click;
end;

end.

5. 求一个delphi编写计算器,要求如下:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    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;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    BitBtn1: TBitBtn;
    Image1: TImage;
    procedure BitBtn1Click(Sender: TObject);
    procedure Button12Click(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 Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure Label1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  temp1:string;
  temp2:double;
  n:integer;
implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
form1.Close;
end;

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

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Edit1.Text:=edit1.Text+'1';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'2';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'3';
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'4';
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'5';
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'6';
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'7';
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'8';
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'9';
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'0';
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
n:=1;
temp1:=edit1.Text;
edit1.clear;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
n:=2;
temp1:=edit1.Text;
edit1.clear;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
n:=3;
temp1:=edit1.Text;
edit1.clear;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
n:=4;
temp1:=edit1.Text;
edit1.clear;
end;

procedure TForm1.Button11Click(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
       showmessage('除数不能为零!');
       exit;
       end
    else
      temp2:=strtofloat(temp1)/strtofloat(edit1.Text);
    end;
      edit1.Text:=floattostr(temp2);
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
messagedlg('此处没有设置特定的功能!',mterror,[mbok],0);
end;

procedure TForm1.Label1DblClick(Sender: TObject);
begin
messagedlg('不能操作!',mtinformation,[mbok],0);
end;

end.

求一个delphi编写计算器,要求如下:

6. 求delphi高手帮做一个简单的计算器程序,有加减的就行,谢谢。

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,StrUtils;
type
  Num = record
    leftN:currency;
    rightN:currency;
    operater:string;
  end;
  TForm1 = class(TForm)
    Edit1: TEdit;
    btn_1: TButton;
    btn_2: TButton;
    btn_3: TButton;
    btn_4: TButton;
    btn_5: TButton;
    btn_6: TButton;
    btn_7: TButton;
    btn_8: TButton;
    btn_9: TButton;
    btn_0: TButton;
    btn_dot: TButton;
    btn_add: TButton;
    btn_sub: TButton;
    btn_mult: TButton;
    btn_Result: TButton;
    btn_mod: TButton;
    btn_right: TButton;
    btn_left: TButton;
    btn_clear: TButton;
    btn_cancle: TButton;
    procedure btn_clearClick(Sender: TObject);
    procedure btn_1Click(Sender: TObject);
    procedure btn_2Click(Sender: TObject);
    procedure btn_3Click(Sender: TObject);
    procedure btn_4Click(Sender: TObject);
    procedure btn_5Click(Sender: TObject);
    procedure btn_6Click(Sender: TObject);
    procedure btn_7Click(Sender: TObject);
    procedure btn_8Click(Sender: TObject);
    procedure btn_9Click(Sender: TObject);
    procedure btn_0Click(Sender: TObject);
    procedure btn_addClick(Sender: TObject);
    procedure btn_subClick(Sender: TObject);
    procedure btn_multClick(Sender: TObject);
    procedure btn_modClick(Sender: TObject);
    procedure btn_leftClick(Sender: TObject);//------------------未完成
    procedure btn_rightClick(Sender: TObject);//----------------未完成
    procedure btn_dotClick(Sender: TObject);
    procedure btn_cancleClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btn_ResultClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function getAnum(sender:Tobject):string;//-----获取按键上的数字
    procedure getNum(s:string);//---------------------把输入的内容拆分成三部分
    procedure flash(sender:Tobject);//--------------更新输入的内容
  end;
var
  Form1: TForm1;
  anum:Num;//------------------存储getNum过程得到的三个部分
  clear:boolean;//--------------如果按了“=”(获取下个输入前先清空结果)
implementation
{$R *.dfm}
procedure TForm1.btn_clearClick(Sender: TObject);
begin
  edit1.Text:='';
end;
procedure TForm1.btn_1Click(Sender: TObject);
begin
   self.flash(sender);
end;
function TForm1.getANum(sender: tobject): string;
begin
    result:= (sender as tbutton).Caption;
end;
procedure TForm1.btn_2Click(Sender: TObject);
begin
  self.flash(sender);
end;
procedure TForm1.btn_3Click(Sender: TObject);
begin
  self.flash(sender);
end;
procedure TForm1.btn_4Click(Sender: TObject);
begin
  self.flash(sender);
end;
procedure TForm1.btn_5Click(Sender: TObject);
begin
  self.flash(sender);
end;
procedure TForm1.btn_6Click(Sender: TObject);
begin
  self.flash(sender);
end;
procedure TForm1.btn_7Click(Sender: TObject);
begin
  self.flash(sender);
end;
procedure TForm1.btn_8Click(Sender: TObject);
begin
 self.flash(sender);
end;
procedure TForm1.btn_9Click(Sender: TObject);
begin
  self.flash(sender);
end;
procedure TForm1.btn_0Click(Sender: TObject);
begin
  self.flash(sender);
end;
procedure TForm1.btn_addClick(Sender: TObject);
begin
  edit1.Text:=edit1.Text+getaNum(sender);
end;
procedure TForm1.btn_subClick(Sender: TObject);
begin
  edit1.Text:=edit1.Text+getaNum(sender);
end;
procedure TForm1.btn_multClick(Sender: TObject);
begin
  edit1.Text:=edit1.Text+getaNum(sender);
end;
procedure TForm1.btn_modClick(Sender: TObject);
begin
  edit1.Text:=edit1.Text+getaNum(sender);
end;
procedure TForm1.btn_leftClick(Sender: TObject);
begin
  edit1.Text:=edit1.Text+getaNum(sender);
end;
procedure TForm1.btn_rightClick(Sender: TObject);
begin
  edit1.Text:=edit1.Text+getaNum(sender);
end;
procedure TForm1.btn_dotClick(Sender: TObject);
begin
{  if (pos('.',edit1.Text)<1 ) then }
    edit1.Text:=edit1.Text+'.'; 
end;
procedure TForm1.btn_cancleClick(Sender: TObject);
var
  i:integer;
  s1:string;
begin
  s1:= edit1.Text;
  i:=length(s1);
  edit1.Text:= midstr(s1,0,i-1);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  edit1.text:='';
  clear:=false;
end;
procedure TForm1.getNum(s: string);
var
  i:integer;
begin
if (pos('+',s)>1) then
  begin
     i:=pos('+',s);
     anum.leftN:=strtocurr(midstr(s,1,i-1));
     anum.rightN:=strtocurr(midstr(s,i+1,length(s)));
     anum.operater:='+';
     //edit1.Text:=currtostr(anum.leftN+anum.rightN);
  end;
if (pos('-',s)>1) then
  begin
     i:=pos('-',s);
     anum.leftN:=strtocurr(midstr(s,1,i-1));
     anum.rightN:=strtocurr(midstr(s,i+1,length(s)));
     anum.operater:='-';
     //edit1.Text:=currtostr(anum.leftN-anum.rightN);
  end;
  if (pos('*',s)>1) then
  begin
     i:=pos('*',s);
     anum.leftN:=strtocurr(midstr(s,1,i-1));
     anum.rightN:=strtocurr(midstr(s,i+1,length(s)));
     anum.operater:='*';
    // edit1.Text:=currtostr(anum.leftN*anum.rightN);
  end;
  if (pos('/',s)>1) then
  begin
     i:=pos('/',s);
     anum.leftN:=strtocurr(midstr(s,1,i-1));
     anum.rightN:=strtocurr(midstr(s,i+1,length(s)));
     anum.operater:='/';
     //edit1.Text:=currtostr(anum.leftN/anum.rightN);
  end;
end;
procedure TForm1.btn_ResultClick(Sender: TObject);
begin
  //self.getNum(trim(edit1.text));
  clear:=true;
  try
     self.getNum(edit1.text);
    if (anum.operater='+') then
      edit1.Text:=currtostr(anum.leftN+anum.rightN);
    if (anum.operater='-') then
      edit1.text:= currtostr(anum.leftN-anum.rightN);
    if (anum.operater='*') then
      edit1.text:= currtostr(anum.leftN*anum.rightN);
    if (anum.operater='/') then
      edit1.text:= currtostr(anum.leftN/anum.rightN);
  except
     showmessage('输入内容有误!');
  end;
end;
procedure TForm1.flash(sender:Tobject);
begin
   if clear then
   begin
      edit1.text:='' ;
      edit1.Text :=getAnum(sender);
      clear:=false;
   end else begin
      edit1.text:=edit1.text+getanum(sender);
      clear:=false;
   end;
end;
//自己乱写的算钱用的小东东(仅限算RMB)~

7. delphi 制作计算器

//不知道你这程序是干什么用的,但里面的错误不少
//我只对明显的错误进行了修改,并在错误语句后加了注释,你看看
procedure TForm1.Button4Click(Sender: TObject);
begin
 if b=0 then
   b:=StrToint(edit1.Text);
  if c='+'
    then  begin  //这里要加begin和end
        edit1.Text:=intToStr(a+b);
        a:=StrToint(edit1.Text) ;
        exit;
    end;
   if c='/'
    then  begin  //这里也要加begin和end
    if b=0  then edit1.Text:='cuowu'   else
    if
    b0
    then edit1.Text:=FloatToStr(b / a);  //b是除数,应该是a / b吧?

        a:=round(StrToFloat(edit1.Text)) ;  //除法的结果不能保证是整数吧?只能取近似值了
    end;
end;

delphi 制作计算器

8. 高分求一个完整的delphi计算器

没有使用定义函数写的delphi计算器
参考下面的网址