我最近在编写一个简易计算器,但我想能做个和windows计算器里那样,可以保存结果一直加下去或者减下去,比如说4+5=9 再按等号就14 19 24 再按减3就有21 18
我就不会怎样写如何保存这临时结果 ,不过我这个程序就加第一个数 比如说4+5=9 再按等号就变成13 17 21
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;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;
Label1: TLabel;
Label2: TLabel;
SpeedButton1: TSpeedButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button16Click(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 Button17Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
i:integer;
temp1:string;
temp2:real;
temp3:string;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'0';
end;procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'1';
end;procedure TForm1.Button16Click(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
i:=1;
temp1:=edit1.Text;
edit1.Clear;
end;procedure TForm1.Button17Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'.';
end;procedure TForm1.Button15Click(Sender: TObject);
begin
edit1.Text:='';
end;procedure TForm1.Button11Click(Sender: TObject);
begin
i:=2;
temp1:=edit1.Text;
edit1.Clear;
end;procedure TForm1.Button12Click(Sender: TObject);
begin
i:=3;
temp1:=edit1.Text;
edit1.Clear;
end;procedure TForm1.Button13Click(Sender: TObject);
begin
i:=4;
temp1:=edit1.Text;
edit1.Clear;
end;procedure TForm1.Button14Click(Sender: TObject);
begin
case i 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
showmessage('除数不可为0')
else
temp2:=strtofloat(temp1)/strtofloat(edit1.Text);
end;
edit1.Text:=floattostr(temp2);
end;procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
speedbutton1.Down:=true;
if speedbutton1.Down=true then
edit1.SetFocus;
end;end.
请问我应该怎样编 越详细越好
我就不会怎样写如何保存这临时结果 ,不过我这个程序就加第一个数 比如说4+5=9 再按等号就变成13 17 21
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;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;
Label1: TLabel;
Label2: TLabel;
SpeedButton1: TSpeedButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button16Click(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 Button17Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
i:integer;
temp1:string;
temp2:real;
temp3:string;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'0';
end;procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'1';
end;procedure TForm1.Button16Click(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
i:=1;
temp1:=edit1.Text;
edit1.Clear;
end;procedure TForm1.Button17Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'.';
end;procedure TForm1.Button15Click(Sender: TObject);
begin
edit1.Text:='';
end;procedure TForm1.Button11Click(Sender: TObject);
begin
i:=2;
temp1:=edit1.Text;
edit1.Clear;
end;procedure TForm1.Button12Click(Sender: TObject);
begin
i:=3;
temp1:=edit1.Text;
edit1.Clear;
end;procedure TForm1.Button13Click(Sender: TObject);
begin
i:=4;
temp1:=edit1.Text;
edit1.Clear;
end;procedure TForm1.Button14Click(Sender: TObject);
begin
case i 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
showmessage('除数不可为0')
else
temp2:=strtofloat(temp1)/strtofloat(edit1.Text);
end;
edit1.Text:=floattostr(temp2);
end;procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
speedbutton1.Down:=true;
if speedbutton1.Down=true then
edit1.SetFocus;
end;end.
请问我应该怎样编 越详细越好
解决方案 »
- 关于TClientDataSet的问题
- 为什么会释放掉呢??
- 代表控件自身的语句
- CSDN/Delphi版2003年度风云人物/风云贴评比/投票活动!
- 如何将一个memo里面的内容插入到数据库的memo字段中?
- if Memo1.Lines.Values['Title1'] = '' then 在Help里看到的,什么意思啊.Thanks
- 100分++向高手请教,tcp/ip & socket问题。
- delphi中调用word和瑞星有冲突 如何解决?
- 有关FASTREPORT中richtext导入数据问题
- 我的delphi为什么不能用了????
- delphi7+access2003打包问题
- delphi怎么连接DBF啊
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+ (sender as TButton).Caption;
end;
不就省事了嗎
var
Form1: TForm1;
str1,t,str2:string;
clicked:boolean;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
if ((sender as TButton).Caption)='C' then
edit1.Text:=''
else if ((sender as TButton).Caption)='.' then
begin
if pos('.',edit1.Text)=0 then
edit1.Text:=edit1.Text+ (sender as TButton).Caption;
end
else if (length(edit1.Text)=0) and ((sender as TButton).Caption='0') then
edit1.Text:=''
else
edit1.Text:=edit1.Text+ (sender as TButton).Caption;
end;procedure TForm1.Button11Click(Sender: TObject);
begin
if length(edit1.Text)<>0 then
str1:=edit1.Text
else
str1:='0';
edit1.Text:='';
t:= (sender as TButton).Caption ;
clicked:=true;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
clicked:=false;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin if clicked then
begin
str2:=edit1.Text;
if t='+' then
edit1.text:=floattostr(strtofloat(str1)+strtofloat(edit1.text))
else if t='-' then
edit1.text:=floattostr(strtofloat(str1)-strtofloat(edit1.text))
else if t='*' then
edit1.text:=floattostr(strtofloat(str1)*strtofloat(edit1.text))
else if t='/' then
begin
if edit1.Text<>'0' then
edit1.text:=floattostr(strtofloat(str1) / strtofloat(edit1.text));
end;
end
else
begin
if t='+' then
edit1.text:=floattostr(strtofloat(edit1.text)+strtofloat(str2))
else if t='-' then
edit1.text:=floattostr(strtofloat(edit1.text)-strtofloat(str2))
else if t='*' then
edit1.text:=floattostr(strtofloat(edit1.text)*strtofloat(str2))
else if t='/' then
begin
if edit1.Text<>'0' then
edit1.text:=floattostr(strtofloat(edit1.text)-strtofloat(str2));
end;
end;
clicked:=false;
end;
這句有小毛病
if (length(edit1.Text)=0) and ((sender as TButton).Caption='0') then
edit1.Text:=''
本來是不想輸入0123...的,但是就不能輸入0.123的小數了,你自己看看的吧,思路差不多吧
var
Form1: TForm1;
str1,t,str2:string;
clicked:boolean;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); //' C' ,'.','0','1','2,','3'...'9'
begin
if ((sender as TButton).Caption)='C' then
edit1.Text:=''
else if ((sender as TButton).Caption)='.' then
begin
if pos('.',edit1.Text)=0 then
edit1.Text:=edit1.Text+ (sender as TButton).Caption;
end
else if (length(edit1.Text)=1) and (edit1.Text='0') and ((sender as TButton).Caption<>'.') then else
edit1.Text:=edit1.Text+ (sender as TButton).Caption;
end;procedure TForm1.Button11Click(Sender: TObject); //'+','-','*','/'
begin
if length(edit1.Text)<>0 then
str1:=edit1.Text
else
str1:='0';
edit1.Text:='';
t:= (sender as TButton).Caption ;
clicked:=true;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
clicked:=false;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin if clicked then
begin
str2:=edit1.Text;
if t='+' then
edit1.text:=floattostr(strtofloat(str1)+strtofloat(edit1.text))
else if t='-' then
edit1.text:=floattostr(strtofloat(str1)-strtofloat(edit1.text))
else if t='*' then
edit1.text:=floattostr(strtofloat(str1)*strtofloat(edit1.text))
else if t='/' then
begin
if edit1.Text<>'0' then
edit1.text:=floattostr(strtofloat(str1) / strtofloat(edit1.text))
else
edit1.Text:='0';
end;
end
else
begin
if t='+' then
edit1.text:=floattostr(strtofloat(edit1.text)+strtofloat(str2))
else if t='-' then
edit1.text:=floattostr(strtofloat(edit1.text)-strtofloat(str2))
else if t='*' then
edit1.text:=floattostr(strtofloat(edit1.text)*strtofloat(str2))
else if t='/' then
begin
if edit1.Text<>'0' then
edit1.text:=floattostr(strtofloat(edit1.text)/strtofloat(str2))
else
edit1.Text:='0';
end;
end;
clicked:=false;
end;procedure TForm1.Button16Click(Sender: TObject);
begin
showmessage(floattostr(strtofloat('0123')));
end;