DELPHI中编号了一个计算器,未实现除数不能为零,小数点不重复,键盘录入,连加连减问题。高手帮忙改改。

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);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
a,b:real;
y:integer;

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.Button11Click(Sender: TObject);
begin
a:=strtofloat(edit1.text);
edit1.Text:='';
y:=1;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
a:=strtofloat(edit1.Text);
edit1.text:='';
y:=2;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
a:=strtofloat(edit1.text);
edit1.text:='';
y:=3;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
a:=strtofloat(edit1.Text);
edit1.text:='';
y:=4;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
edit1.Text:=edit1.text+'.' ;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
edit1.Text:='';
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
if y=1 then b:=strtofloat(edit1.Text)+a;
if y=2 then b:=a-strtofloat(edit1.text);
if y=3 then b:=strtofloat(edit1.text)*a;
if y=4 then b:=a/strtofloat(edit1.text);
edit1.text:=floattostr(b);
end;

end.

因为字数太多表头我删除了一步分,高手帮忙改改,谢谢啦。

//直接帮你写个计算器了吧。
//3个edit ,一个label,一个combobox事件如下

procedure TForm1.FormCreate(Sender: TObject);
begin
combobox1.Items.Add('+');
combobox1.Items.Add('-');
combobox1.Items.Add('*');
combobox1.Items.Add('/');
combobox1.ItemIndex :=0;
label1.Caption := '=';
edit1.Text := '0';
edit2.Text := '0';
edit3.Text := '0';
button1.Caption := '计算';
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', #8]) then
key := char(0);
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', #8]) then
key := char(0);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
case combobox1.ItemIndex of
0 :
begin
if (edit1.Text<>'') and (edit2.Text<>'')then
edit3.Text := floatTostr(StrTofloat(edit1.Text)+StrTofloat(edit2.Text));

end;
1 :
begin
if (edit1.Text<>'') and (edit2.Text<>'')then
edit3.Text := floatTostr(StrTofloat(edit1.Text)-StrTofloat(edit2.Text));

end;
2 :
begin
if (edit1.Text<>'') and (edit2.Text<>'')then
edit3.Text := floatTostr(StrTofloat(edit1.Text) *StrTofloat(edit2.Text));

end;
3 :
begin
if (edit1.Text<>'') and (edit2.Text<>'')and(edit2.Text<>'0')then
edit3.Text := floatTostr(StrToint(edit1.Text) /StrTofloat(edit2.Text));

end;

end;
end;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-15
procedure TForm1.Button15Click(Sender: TObject);
begin
if pos('.',edit1.Text) > 0 then
exit
else
edit1.Text := edit1.Text + '.';
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
if y=1 then b:=strtofloat(edit1.Text)+a;
if y=2 then b:=a-strtofloat(edit1.text);
if y=3 then b:=strtofloat(edit1.text)*a;
if y=4 then
begin
if inttostr(edit1.text) = 0
exit
else
b:=a/strtofloat(edit1.text);
end
edit1.text:=floattostr(b);
end;

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网