Tema: Calculadora
Ver Mensaje Individual
  #4  
Antiguo 14-05-2007
sebaguillen sebaguillen is offline
Registrado
 
Registrado: may 2007
Posts: 9
Reputación: 0
sebaguillen Va por buen camino
Calculadora

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
    { Private declarations }
  public
    { Public declarations }
  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
            //x:= i div strtofloat (Edicion.Text);
            //Edicion.Text:= inttostr (x);
            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.

Última edición por dec fecha: 14-05-2007 a las 20:51:08.
Responder Con Cita