{ 程序:四则运算计算器} unit jsq;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons,ExtCtrls,urlmon; const MaxElements=100; //maximum char in stack; type TStack=class private SData:array[1..MaxElements] of string; //stack data public IsEmpty:boolean; //it is an empty stack TopPointer:integer; //the top pointer of the stack; procedure Init; function GetElement(var data:string;i:integer):boolean; //get data from stack function PopElement(var data:string):boolean; //popup data function PushElement(data:string):boolean; //push data end;type TForm1 = class(TForm) SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; SpeedButton5: TSpeedButton; SpeedButton6: TSpeedButton; SpeedButton7: TSpeedButton; SpeedButton8: TSpeedButton; SpeedButton9: TSpeedButton; SpeedButton10: TSpeedButton; SpeedButton11: TSpeedButton; SpeedButton12: TSpeedButton; SpeedButton13: TSpeedButton; SpeedButton14: TSpeedButton; SpeedButton15: TSpeedButton; SpeedButton16: TSpeedButton; SpeedButton17: TSpeedButton; SpeedButton20: TSpeedButton; Panel1: TPanel; SpeedButton18: TSpeedButton; SpeedButton19: TSpeedButton; SpeedButton21: TSpeedButton; procedure SpeedButton1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure SpeedButton17Click(Sender: TObject); procedure SpeedButton20Click(Sender: TObject); procedure SpeedButton19Click(Sender: TObject); procedure FormKeyPress(Sender: TObject; var Key: Char); procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure SpeedButton22Click(Sender: TObject); private { Private declarations } public { Public declarations } end; procedure StoreExpression(exp:string;mystack:TStack); //save expression procedure TransformExpression(sourceStack,targetStack:TStack); //transform function Calculate(rStack:TStack;var Aresult:real):boolean; //calculatevar Form1: TForm1; ExpressionStack,tempStack,ReverseStack:TStack; implementation{$R *.DFM}procedure TForm1.SpeedButton1Click(Sender: TObject); begin if panel1.Caption='Syntax Error' then SpeedButton17.Click; if TSpeedbutton(sender).caption='+/-' then begin if panel1.caption='0' then exit; if panel1.Caption[1]='-' then panel1.caption:=copy(panel1.caption,2,length(panel1.caption)) else panel1.Caption:='-'+panel1.Caption; exit; end; if (TSpeedbutton(Sender).caption[1] in ['0'..'9','(']) and (panel1.Caption='0') then panel1.Caption:=''; panel1.Caption:=panel1.Caption+TSpeedButton(Sender).caption; end;procedure TForm1.FormCreate(Sender: TObject); begin ExpressionStack:=TStack.Create; tempStack:=TStack.Create; ReverseStack:=TStack.Create; ExpressionStack.Init; tempStack.Init; ReverseStack.Init;end; function TStack.GetElement(var data:string;i:integer):boolean; begin if (i>TopPointer) or (i<1) then begin result:=false; exit; end; //read Stack error data:=SData[i]; result:=true; end;procedure TStack.Init; begin TopPointer:=0; IsEmpty:=True; end;function TStack.PopElement(var data: string): boolean; var aData:string; begin if not GetElement(aData,TopPointer) then begin result:=false; exit; end; //popup the data of Stack's head,first in first out data:=aData; sData[TopPointer]:=''; dec(TopPointer); if TopPointer<=0 then IsEmpty:=true else IsEmpty:=false; result:=true;end;function TStack.PushElement(data: string): boolean; begin if TopPointer>=MaxElements then begin result:=false; exit; end; isEmpty:=false; inc(TopPointer); SData[TopPointer]:=data; result:=true; end; procedure StoreExpression(exp:string;mystack:TStack); var temp:char; temp1:string; i:integer; v:string; begin mystack.Init; v:=''; for i:=1 to length(Exp) do begin temp:=exp[i]; if temp in ['+','-','*','/','(',')'] then begin if v<>'' then mystack.PushElement(v);//if mystack.GetElement(temp1,mystack.TopPointer); if (temp='-') and ((temp1='(') or (mystack.IsEmpty))then mystack.PushElement('0'); // mystack.PushElement(temp); v:=''; end else begin v:=v+temp; end; end; if v<>'' then mystack.PushElement(v); end;
procedure TransformExpression(sourceStack,targetStack:TStack); var i:integer; str:string; temp:string; value,code:integer; begin for i:=1 to sourceStack.TopPointer do begin sourceStack.GetElement(str,i); val(str,value,code); if code=0 then targetStack.PushElement(str) //this is a operate data else begin // this is a opeartor if (str='+') or (str='-') then begin while not tempStack.IsEmpty do begin tempStack.GetElement(temp,tempStack.TopPointer); if temp='(' then break; tempStack.PopElement(temp); targetStack.PushElement(temp); end; end;//if if (str='*') or (str='/') then begin while not tempStack.IsEmpty do begin tempStack.GetElement(temp,tempStack.TopPointer); if (temp='(') or (temp='-') or (temp='+') then break; tempStack.PopElement(temp); targetStack.PushElement(temp); end; //while end;//if if str=')' then begin while not tempStack.IsEmpty do begin tempStack.GetElement(temp,tempStack.TopPointer); if (temp='(') then begin tempStack.PopElement(temp); break; end; tempStack.PopElement(temp); targetStack.PushElement(temp); end;//while end;//if if str<>')' then tempStack.PushElement(str); end;//else if end;//for while not tempStack.IsEmpty do begin tempStack.PopElement(temp); targetStack.PushElement(temp); end; targetStack.GetElement(temp,1); end;function Calculate(rStack:TStack;var Aresult:real):boolean; var i:integer; temp:string; stra,strb:string; inta,intb:real; tempResult:real; code:integer; strtemp:string; begin Result:=false; ExpressionStack.Init; tempStack.Init; ReverseStack.GetElement(strtemp,1); val(strtemp,tempResult,Code); for i:=1 to ReverseStack.TopPointer do begin ReverseStack.GetElement(temp,i); case temp[1] of '+','-','*','/':begin if not tempStack.PopElement(stra) then exit; if not tempStack.PopElement(strb) then exit; val(stra,inta,code); if code<>0 then exit; val(strb,intb,code); if code<>0 then exit; if temp='+' then tempResult:=intb+inta; if temp='-' then tempResult:=intb-inta; if temp='*' then tempResult:=intb*inta; if temp='/' then begin if inta=0 then exit; tempResult:=intb/inta; end; tempStack.PushElement(floattostr(tempResult)); end; else tempStack.PushElement(temp); end;//case end;//if tempStack.PopElement(temp); if not tempStack.IsEmpty then exit; Aresult:=tempResult; result:=true; end; procedure TForm1.SpeedButton17Click(Sender: TObject); begin ExpressionStack.Init; tempStack.Init; ReverseStack.Init; Panel1.Caption:='0'; end;procedure TForm1.SpeedButton20Click(Sender: TObject); var jg:real; begin ExpressionStack.Init; tempStack.Init; ReverseStack.Init;
StoreExpression(Panel1.caption,ExpressionStack); TransformExpression(ExpressionStack,ReverseStack); if Calculate(ReverseStack,jg) then Panel1.caption:=floattostr(jg) else panel1.Caption:='Syntax Error'; end;procedure TForm1.SpeedButton19Click(Sender: TObject); var s:string; begin if panel1.Caption='Syntax Error' then panel1.Caption:='0'; s:=panel1.Caption; if s<>'' then panel1.Caption:=copy(s,1,length(s)-1); if panel1.caption='' then Panel1.Caption:='0'; end;procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); var i:integer; begin if key=#27 then Speedbutton17.Click; if key=#13 then key:='='; if key=#8 then Speedbutton19.Click; for i:=0 to form1.ControlCount-1 do begin if Controls[i] is TSpeedbutton then begin if TSpeedbutton(form1.Controls[i]).caption=key then begin TSpeedbutton(form1.Controls[i]).click; exit; end; end; end;//forend;procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin panel1.hint:=panel1.caption; end;procedure TForm1.SpeedButton22Click(Sender: TObject); var Buffer: array[0..127] of WideChar; begin StringToWideChar('http://www.tommstudio.com', Buffer, SizeOf(Buffer) div 2); if IsValidURL(nil, Buffer, 0) = 0 then HLinkNavigateString(nil, Buffer); end;end.
刚试过
能下
程序:四则运算计算器}
unit jsq;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons,ExtCtrls,urlmon;
const MaxElements=100; //maximum char in stack;
type TStack=class
private
SData:array[1..MaxElements] of string; //stack data
public
IsEmpty:boolean; //it is an empty stack
TopPointer:integer; //the top pointer of the stack;
procedure Init;
function GetElement(var data:string;i:integer):boolean; //get data from stack
function PopElement(var data:string):boolean; //popup data
function PushElement(data:string):boolean; //push data
end;type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
SpeedButton13: TSpeedButton;
SpeedButton14: TSpeedButton;
SpeedButton15: TSpeedButton;
SpeedButton16: TSpeedButton;
SpeedButton17: TSpeedButton;
SpeedButton20: TSpeedButton;
Panel1: TPanel;
SpeedButton18: TSpeedButton;
SpeedButton19: TSpeedButton;
SpeedButton21: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton17Click(Sender: TObject);
procedure SpeedButton20Click(Sender: TObject);
procedure SpeedButton19Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton22Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure StoreExpression(exp:string;mystack:TStack); //save expression
procedure TransformExpression(sourceStack,targetStack:TStack); //transform
function Calculate(rStack:TStack;var Aresult:real):boolean; //calculatevar
Form1: TForm1;
ExpressionStack,tempStack,ReverseStack:TStack;
implementation{$R *.DFM}procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if panel1.Caption='Syntax Error' then SpeedButton17.Click;
if TSpeedbutton(sender).caption='+/-' then begin
if panel1.caption='0' then exit;
if panel1.Caption[1]='-' then panel1.caption:=copy(panel1.caption,2,length(panel1.caption)) else panel1.Caption:='-'+panel1.Caption;
exit;
end; if (TSpeedbutton(Sender).caption[1] in ['0'..'9','(']) and (panel1.Caption='0') then panel1.Caption:='';
panel1.Caption:=panel1.Caption+TSpeedButton(Sender).caption;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
ExpressionStack:=TStack.Create;
tempStack:=TStack.Create;
ReverseStack:=TStack.Create;
ExpressionStack.Init;
tempStack.Init;
ReverseStack.Init;end;
function TStack.GetElement(var data:string;i:integer):boolean;
begin
if (i>TopPointer) or (i<1) then begin
result:=false;
exit;
end; //read Stack error data:=SData[i];
result:=true;
end;procedure TStack.Init;
begin
TopPointer:=0;
IsEmpty:=True;
end;function TStack.PopElement(var data: string): boolean;
var aData:string;
begin
if not GetElement(aData,TopPointer) then begin
result:=false;
exit;
end;
//popup the data of Stack's head,first in first out data:=aData;
sData[TopPointer]:='';
dec(TopPointer);
if TopPointer<=0 then IsEmpty:=true else IsEmpty:=false;
result:=true;end;function TStack.PushElement(data: string): boolean;
begin
if TopPointer>=MaxElements then begin
result:=false;
exit;
end;
isEmpty:=false;
inc(TopPointer);
SData[TopPointer]:=data;
result:=true;
end;
procedure StoreExpression(exp:string;mystack:TStack);
var temp:char;
temp1:string;
i:integer;
v:string;
begin
mystack.Init;
v:='';
for i:=1 to length(Exp) do begin
temp:=exp[i];
if temp in ['+','-','*','/','(',')'] then begin
if v<>'' then mystack.PushElement(v);//if
mystack.GetElement(temp1,mystack.TopPointer);
if (temp='-') and ((temp1='(') or (mystack.IsEmpty))then mystack.PushElement('0'); //
mystack.PushElement(temp);
v:='';
end else begin
v:=v+temp;
end;
end;
if v<>'' then mystack.PushElement(v);
end;
var i:integer;
str:string;
temp:string;
value,code:integer;
begin
for i:=1 to sourceStack.TopPointer do begin
sourceStack.GetElement(str,i);
val(str,value,code);
if code=0 then targetStack.PushElement(str) //this is a operate data
else begin // this is a opeartor
if (str='+') or (str='-') then begin
while not tempStack.IsEmpty do begin
tempStack.GetElement(temp,tempStack.TopPointer);
if temp='(' then break;
tempStack.PopElement(temp);
targetStack.PushElement(temp);
end;
end;//if
if (str='*') or (str='/') then begin
while not tempStack.IsEmpty do begin
tempStack.GetElement(temp,tempStack.TopPointer);
if (temp='(') or (temp='-') or (temp='+') then break;
tempStack.PopElement(temp);
targetStack.PushElement(temp);
end; //while
end;//if
if str=')' then begin
while not tempStack.IsEmpty do begin
tempStack.GetElement(temp,tempStack.TopPointer);
if (temp='(') then begin
tempStack.PopElement(temp);
break;
end;
tempStack.PopElement(temp);
targetStack.PushElement(temp);
end;//while
end;//if
if str<>')' then tempStack.PushElement(str);
end;//else if
end;//for while not tempStack.IsEmpty do begin
tempStack.PopElement(temp);
targetStack.PushElement(temp);
end;
targetStack.GetElement(temp,1);
end;function Calculate(rStack:TStack;var Aresult:real):boolean;
var i:integer;
temp:string;
stra,strb:string;
inta,intb:real;
tempResult:real;
code:integer;
strtemp:string;
begin
Result:=false;
ExpressionStack.Init;
tempStack.Init;
ReverseStack.GetElement(strtemp,1);
val(strtemp,tempResult,Code); for i:=1 to ReverseStack.TopPointer do begin
ReverseStack.GetElement(temp,i);
case temp[1] of
'+','-','*','/':begin
if not tempStack.PopElement(stra) then exit;
if not tempStack.PopElement(strb) then exit;
val(stra,inta,code);
if code<>0 then exit;
val(strb,intb,code);
if code<>0 then exit;
if temp='+' then tempResult:=intb+inta;
if temp='-' then tempResult:=intb-inta;
if temp='*' then tempResult:=intb*inta;
if temp='/' then begin
if inta=0 then exit;
tempResult:=intb/inta;
end;
tempStack.PushElement(floattostr(tempResult));
end;
else tempStack.PushElement(temp);
end;//case
end;//if
tempStack.PopElement(temp);
if not tempStack.IsEmpty then exit;
Aresult:=tempResult;
result:=true;
end;
procedure TForm1.SpeedButton17Click(Sender: TObject);
begin
ExpressionStack.Init;
tempStack.Init;
ReverseStack.Init;
Panel1.Caption:='0';
end;procedure TForm1.SpeedButton20Click(Sender: TObject);
var jg:real;
begin
ExpressionStack.Init;
tempStack.Init;
ReverseStack.Init;
StoreExpression(Panel1.caption,ExpressionStack);
TransformExpression(ExpressionStack,ReverseStack);
if Calculate(ReverseStack,jg) then Panel1.caption:=floattostr(jg)
else panel1.Caption:='Syntax Error';
end;procedure TForm1.SpeedButton19Click(Sender: TObject);
var s:string;
begin
if panel1.Caption='Syntax Error' then panel1.Caption:='0';
s:=panel1.Caption;
if s<>'' then panel1.Caption:=copy(s,1,length(s)-1);
if panel1.caption='' then Panel1.Caption:='0';
end;procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var i:integer;
begin
if key=#27 then Speedbutton17.Click;
if key=#13 then key:='=';
if key=#8 then Speedbutton19.Click;
for i:=0 to form1.ControlCount-1 do begin
if Controls[i] is TSpeedbutton then begin
if TSpeedbutton(form1.Controls[i]).caption=key then begin
TSpeedbutton(form1.Controls[i]).click;
exit;
end;
end;
end;//forend;procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
panel1.hint:=panel1.caption;
end;procedure TForm1.SpeedButton22Click(Sender: TObject);
var Buffer: array[0..127] of WideChar;
begin
StringToWideChar('http://www.tommstudio.com', Buffer, SizeOf(Buffer) div 2);
if IsValidURL(nil, Buffer, 0) = 0 then HLinkNavigateString(nil, Buffer);
end;end.
简单强大的
自己把他改写为EXE的见
http://blog.csdn.net/ly_liuyang/archive/2002/02/16/13334.aspx
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Buttons, StdCtrls, Menus,Unit2;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
BitBtn1: TBitBtn;
Shape1: TShape;
ColorDialog1: TColorDialog;
MainMenu1: TMainMenu;
N1: TMenuItem;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button3Click(Sender: TObject);
begin
Shape1.Shape :=stRoundRect;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Shape1.Shape :=stRectangle;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
Shape1.Shape :=stEllipse;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin
try
if ColorDialog1.Execute then
Shape1.Brush.Color:=ColorDialog1.Color;
except
ShowMessage('color selection dialog failed to load.');
end;
end;procedure TForm1.N1Click(Sender: TObject);
begin
AboutBox.Show;
end;end.
unit Unit1;interfaceuses
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;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Button12: TButton;
procedure FormCreate(Sender: TObject);
procedure Button16Click(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 Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
temp1:string;
temp2:real;
flag:integer;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Edit1.Clear;
end;procedure TForm1.Button16Click(Sender: TObject);
begin
flag:=4;
temp1:=Edit1.Text;
edit1.Clear
end;procedure TForm1.Button12Click(Sender: TObject);
begin
Edit1.Text:='0';
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
flag:=3;
temp1:=Edit1.Text;
edit1.Clear
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
flag:=2;
temp1:=Edit1.Text;
edit1.Clear
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
flag:=1;
temp1:=Edit1.Text;
edit1.Clear
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Clear;
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.Button11Click(Sender: TObject);
begin
case flag of
1:temp2:=StrToFloat(Edit1.Text)+StrToFloat(temp1);
2:temp2:=StrToFloat(Edit1.Text)-StrToFloat(temp1);
3:temp2:=StrToFloat(Edit1.Text)*StrToFloat(temp1);
4:temp2:=StrToFloat(Edit1.Text)/StrToFloat(temp1);
end;
Edit1.Text:=FloatToStr(temp2);
end;end.
unit ch3_4Unit;interfaceuses
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;
procedure FormCreate(Sender: TObject);
procedure ZeroToNineClick(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
private
{ Private declarations }
temp: Int64;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
temp :=0;
end;procedure TForm1.ZeroToNineClick(Sender: TObject);
begin
edit1.Text := edit1.Text + TButton(Sender).Caption;
end;procedure TForm1.Button10Click(Sender: TObject);
begin
temp := StrToInt64('0'+edit1.Text);
edit1.Text :='';
end;procedure TForm1.Button12Click(Sender: TObject);
begin
temp := 0;
edit1.Text :=' ';
end;procedure TForm1.Button13Click(Sender: TObject);
begin
temp := temp +StrToInt64('0'+edit1.text);
edit1.text := IntToStr(temp);
end;end.