Hola Delphius, antes que nada gracias por los consejos. Bueno el error me aparece cuando en tiempo de ejecucuion ingreso un numero real y posteriormente aprieto cualquiera de las operaciones que tengo, basicamente me dice que ese valor que ingrese al principio no es valido... Te dejo el codigo de los procedimientos y desde ya gracias.... Saludos.
Código Delphi
[-]
unit UCalculadora;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edicion: TEdit;
B7: TButton;
B4: TButton;
B1: TButton;
BProducto: TButton;
B8: TButton;
B5: TButton;
B2: TButton;
BResta: TButton;
B9: TButton;
B6: TButton;
B3: TButton;
BSuma: TButton;
B0: TButton;
BPunto: TButton;
BDivision: TButton;
BIgual: TButton;
Button1: TButton;
BCE: TButton;
procedure B7Click(Sender: TObject);
procedure B8Click(Sender: TObject);
procedure B9Click(Sender: TObject);
procedure B4Click(Sender: TObject);
procedure B5Click(Sender: TObject);
procedure B6Click(Sender: TObject);
procedure B1Click(Sender: TObject);
procedure B2Click(Sender: TObject);
procedure B3Click(Sender: TObject);
procedure B0Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure EdicionKeyPress(Sender: TObject; var Key: Char);
procedure BSumaClick(Sender: TObject);
procedure BIgualClick(Sender: TObject);
procedure BRestaClick(Sender: TObject);
procedure BProductoClick(Sender: TObject);
procedure BDivisionClick(Sender: TObject);
procedure BCEClick(Sender: TObject);
procedure BPuntoClick(Sender: TObject);
private
public
end;
var
Form1: TForm1;
f,b: integer;
i: extended;
implementation
{$R *.dfm}
procedure TForm1.B7Click(Sender: TObject);
begin
f:=0;
if Edicion.Text= '0' then
Edicion.Text:= B7.Caption
else
Edicion.Text:= Edicion.Text + B7.Caption;
end;
procedure TForm1.B8Click(Sender: TObject);
begin
if Edicion.Text= '0' then
Edicion.Text:= B8.Caption
else
Edicion.Text:= Edicion.Text + B8.Caption;
end;
procedure TForm1.B9Click(Sender: TObject);
begin
if Edicion.Text= '0' then
Edicion.Text:= B9.Caption
else
Edicion.Text:= Edicion.Text + B9.Caption;
end;
procedure TForm1.B4Click(Sender: TObject);
begin
if Edicion.Text= '0' then
Edicion.Text:= B4.Caption
else
Edicion.Text:= Edicion.Text + B4.Caption;
end;
procedure TForm1.B5Click(Sender: TObject);
begin
if Edicion.Text= '0' then
Edicion.Text:= B5.Caption
else
Edicion.Text:= Edicion.Text + B5.Caption;
end;
procedure TForm1.B6Click(Sender: TObject);
begin
if Edicion.Text= '0' then
Edicion.Text:= B6.Caption
else
Edicion.Text:= Edicion.Text + B6.Caption;
end;
procedure TForm1.B1Click(Sender: TObject);
begin
if Edicion.Text= '0' then
Edicion.Text:= B1.Caption
else
Edicion.Text:= Edicion.Text + B1.Caption;
end;
procedure TForm1.B2Click(Sender: TObject);
begin
if Edicion.Text= '0' then
Edicion.Text:= B2.Caption
else
Edicion.Text:= Edicion.Text + B2.Caption;
end;
procedure TForm1.B3Click(Sender: TObject);
begin
if Edicion.Text= '0' then
Edicion.Text:= B3.Caption
else
Edicion.Text:= Edicion.Text + B3.Caption;
end;
procedure TForm1.B0Click(Sender: TObject);
begin
if Edicion.Text <> '0' then
Edicion.Text:= Edicion.Text + B0.Caption;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.EdicionKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) then
key:= #0;
end;
procedure TForm1.BSumaClick(Sender: TObject);
begin
i:= strtofloat (Edicion.Text);
Edicion.Text:= '';
f:=0;
b:=0;
end;
procedure TForm1.BIgualClick(Sender: TObject);
var
x: extended;
begin
if b= 0 then
begin
if f=0 then
begin
x:= i + strtofloat (Edicion.Text);
Edicion.Text:= floattostr (x);
end
else
if f=1 then
begin
x:= i - strtofloat(Edicion.Text);
Edicion.Text:= floattostr (x);
end
else
if f=2 then
begin
x:= i * strtofloat (Edicion.Text);
Edicion.Text:= floattostr (x);
end
else
begin
if Edicion.Text= '0' then
begin
showmessage ('No se puede dividir por 0');
Edicion.Text:= '0';
end
else
begin
end;
end;
b:=1;
end;
end;
procedure TForm1.BRestaClick(Sender: TObject);
begin
i:= strtofloat (Edicion.Text);
Edicion.Text:= '';
f:=1;
b:=0;
end;
procedure TForm1.BProductoClick(Sender: TObject);
begin
i:= strtofloat (Edicion.Text);
Edicion.Text:= '';
f:=2;
b:=0;
end;
procedure TForm1.BDivisionClick(Sender: TObject);
begin
i:= strtofloat (Edicion.Text);
Edicion.Text:= '';
f:=3;
b:=0;
end;
procedure TForm1.BCEClick(Sender: TObject);
begin
Edicion.Text:= '0';
end;
procedure TForm1.BPuntoClick(Sender: TObject);
begin
if Edicion.Text = '' then
Edicion.Text:= '0.'
else
Edicion.Text:= Edicion.Text + '.';
end;
end.