interface
uses
Windows,
Messages,
SysUtils,
Variants,
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);
private
{ 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的对象
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
Edit1.Clear;
Info.temp1 := 0;
Info.temp2 := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := Edit1.text + '7';
Info.temp1 := StrTofloat(Edit1.text);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := Edit1.text + '8';
Info.temp1 := StrTofloat(Edit1.text);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Text := Edit1.text + '9';
Info.temp1 := StrTofloat(Edit1.text);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Edit1.Text := Edit1.text + '4';
Info.temp1 := StrTofloat(Edit1.text);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Edit1.Text := Edit1.text + '5';
Info.temp1 := StrTofloat(Edit1.text);
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Edit1.Text := Edit1.text + '6';
Info.temp1 := StrTofloat(Edit1.text);
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Edit1.Text := Edit1.text + '1';
Info.temp1 := StrTofloat(Edit1.text);
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
Edit1.Text := Edit1.text + '2';
Info.temp1 := StrTofloat(Edit1.text);
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
Edit1.Text := Edit1.text + '3';
Info.temp1 := StrTofloat(Edit1.text);
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
Edit1.Text := Edit1.text + '0';
Info.temp1 := StrTofloat(Edit1.text);
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
Info.temp2 := Info.temp1;
Info.sign := '+';
Edit1.Clear;
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
Info.temp2 := Info.temp1;
Info.sign := '-';
Edit1.Clear;
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
Info.temp2 := Info.temp1;
Info.sign := '*';
Edit1.Clear;
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
Info.temp2 := Info.temp1;
Info.sign := '/';
Edit1.Clear;
end;
procedure TForm1.Button17Click(Sender: TObject);
begin
if (Info.sign = '+') then
Edit1.text := FloatToStr(Info.Add(Info.temp2, Info.temp1))
else
if (Info.sign = '-') then
Edit1.text := FloatToStr(Info.Sub(Info.temp2, Info.temp1))
else
if (Info.sign = '*') then
Edit1.text := FloatToStr(Info.Mult(Info.temp2, Info.temp1))
else
if (Info.sign = '/') then
Edit1.text := FloatToStr(Info.Dived(Info.temp2, Info.temp1));
Info.temp1 := StrToFloat(Edit1.Text);
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + '.';
Info.temp1 := StrToFloat(Edit1.Text);
end;
end.
本文出自 “Devops” 博客,请务必保留此出处http://wiliiwin.blog.51cto.com/928128/202984