老师要求用delphi编写简单计算器,已经不行不行的了,求大神指点
delphi吧
全部回复
仅看楼主
level 1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Button17: TButton;
Label1: TLabel;
Button13: TButton;
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 Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
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.Button14Click(Sender: TObject);
begin
edit1.Tag:=strtoint(edit1.text); n:=1 ; edit1.Text:=''; edit1.setfocus;
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
edit1.Tag:=strtoint(edit1.text); n:=2 ; edit1.Text:=''; edit1.setfocus;
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
edit1.Tag:=strtoint(edit1.text); n:=3 ; edit1.Text:=''; edit1.setfocus;
end;
procedure TForm1.Button17Click(Sender: TObject);
begin
edit1.Tag:=strtoint(edit1.text); n:=4 ; edit1.Text:=''; edit1.setfocus;
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
case(n) of
1: edit1.Text:=inttostr(edit1.Tag+strtoint(edit1.text));
2: edit1.Text:=inttostr(edit1.Tag-strtoint(edit1.text));
3: edit1.Text:=inttostr(edit1.Tag*strtoint(edit1.text));
4: edit1.Text:=floattostr(edit1.Tag/strtoint(edit1.text));
end;
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
edit1.Text:=copy(edit1.Text,1,length(trim(edit1.Text))-1);
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
edit1.Text:=TForm1.Button11Click(Sender: TObject);
end;
end;
就一个简单的加减乘除,但是归零键无法点开编代码,说是什么找不到函数安装启用,下面是我编的代码,反正是不能运行的凸……求指点!!!
2015年04月17日 02点04分 1
level 10
我记得,贴吧有人发过计算器的源码。
想当年,做课程设计,老师也就是收了一堆代码,然后就没有然后了。大家都过了。
2015年04月17日 05点04分 2
level 6
一会给你写个。
2015年04月18日 02点04分 3
level 6
unit Calc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TCalcMainFrm = class(TForm)
GroupBox1: TGroupBox;
EdtResult: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button12: TButton;
GroupBox2: TGroupBox;
Button11: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Panel1: TPanel;
procedure FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
procedure FormCreate(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Panel1Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
private
{ Private declarations }
Procedure GetOpt(ABtn: TButton);
Procedure UpdateResult();
procedure CalcResult();
public
{ Public declarations }
end;
var
CalcMainFrm: TCalcMainFrm;
implementation
{$R *.dfm}
const
//运算方法
OptPlus = 0;
OptSub = 1;
OptMul = 2;
OptDiv = 3;
var
Oper1, Oper2: Double;
CurOpt: Integer;
Procedure TCalcMainFrm.GetOpt(ABtn: TButton);
begin
with ABtn do
begin
if Caption = '+' then
CurOpt:= 0
else if Caption = '-' then
CurOpt:= 1
else if Caption = '*' then
CurOpt:= 2
else if Caption = '/' then
CurOpt:= 3
end;
if Oper1 = 0 then
Oper1:= StrToFloat(EdtResult.Text)
else if Oper2 = 0 then
begin
Oper2:= StrToFloat(EdtResult.Text);
UpdateResult();
end;
EdtResult.Clear;
end;
Procedure TCalcMainFrm.UpdateResult();
begin
case CurOpt of
OptPlus: Oper1:= Oper1 + Oper2;
OptSub: Oper1:= Oper1 - Oper2;
OptMul: Oper1:= Oper1 * Oper2;
OptDiv: Oper1:= Oper1 / Double(Oper2);
end;
Oper2:= 0;
end;
Procedure TCalcMainFrm.CalcResult();
begin
case CurOpt of
OptPlus: EdtResult.Text:= FloatToStr(Oper1 +
StrToFloat(EdtResult.Text));
OptSub: EdtResult.Text:= FloatToStr(Oper1 -
StrToFloat(EdtResult.Text));
OptMul: EdtResult.Text:= FloatToStr(Oper1 *
StrToFloat(EdtResult.Text));
OptDiv: EdtResult.Text:= FloatToStr(Oper1 /
StrToFloat(EdtResult.Text));
end;
end;
procedure TCalcMainFrm.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
Resize:= False;
end;
procedure TCalcMainFrm.FormCreate(Sender: TObject);
begin
SetWindowLong(EdtResult.Handle, GWL_STYLE,
GetWindowLong(EdtResult.Handle, GWL_STYLE) or ES_RIGHT);
end;
procedure TCalcMainFrm.Button12Click(Sender: TObject);
begin
if EdtResult.Text = '0' then
EdtResult.Clear;
EdtResult.Text:= EdtResult.Text + TButton(Sender).Caption;
end;
procedure TCalcMainFrm.Panel1Click(Sender: TObject);
begin
EdtResult.Clear;
Oper1:= 0;
end;
procedure TCalcMainFrm.Button14Click(Sender: TObject);
begin
GetOpt(TButton(Sender));
end;
procedure TCalcMainFrm.Button16Click(Sender: TObject);
begin
CalcResult;
end;
procedure TCalcMainFrm.Button11Click(Sender: TObject);
begin
GetOpt(TButton(Sender));
end;
procedure TCalcMainFrm.Button13Click(Sender: TObject);
begin
GetOpt(TButton(Sender));
end;
procedure TCalcMainFrm.Button15Click(Sender: TObject);
begin
GetOpt(TButton(Sender));
end;
end.
2015年04月18日 04点04分 4
谢谢!!!
2015年04月18日 07点04分
level 7
第一条 命名就看不懂
2015年04月19日 08点04分 5
1