1. 如何用delphi做一个计算器?
用计算器控件就行了。。。。
2. 用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.
3. 求:用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;
4. 用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.
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.
6. 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;
7. 高分求一个完整的delphi计算器
没有使用定义函数写的delphi计算器
参考下面的网址
8. 如何用Delphi做计算器?
有人问过了
http://zhidao.baidu.com/question/9258032.html?md=3