Calculadora sencilla en Delphi 7

Este es el codigo de una calculadora sencilla (con las 4 operaciones basicas) que utiliza cifras con punto flotante (45.23, 12.58, etc.) programada en Delphi 7. Espero les pueda servir de algo. 

unit calculadora;

interface

uses
  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;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    Button18: TButton;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  cantidad1:Double;
  cantidad2:Double;
  Resultado:Double;
  opcion:Integer=0;
  ans:Double=0;
  longitud:Integer;
  auxiliar:String;
  C:Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’1′;
  end;

procedure TForm1.Button5Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’2′;
  end;

procedure TForm1.Button9Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’3′;
  end;

procedure TForm1.Button2Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’4′;
  end;

procedure TForm1.Button6Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’5′;
  end;

procedure TForm1.Button10Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’6′;
  end;

procedure TForm1.Button3Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’7′;
  end;

procedure TForm1.Button7Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’8′;
  end;

procedure TForm1.Button11Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’9′;
  end;

procedure TForm1.Button4Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’0′;
  end;

procedure TForm1.Button8Click(Sender: TObject);
  begin
    Edit1.Text:=Edit1.Text+’.’;
  end;

procedure TForm1.Button18Click(Sender: TObject);
  begin
    opcion:=1;
    cantidad1:=StrToFloat(Edit1.text);
    Edit1.Text:=»;
  end;

procedure TForm1.Button12Click(Sender: TObject);
  begin
    if opcion=1 then
    begin
      cantidad2:=StrToFloat(Edit1.text);
      Edit1.Text:=»;
      Resultado:=cantidad1+cantidad2;
      ans:=Resultado;
    end
    else if opcion=2 then
    begin
      cantidad2:=StrToFloat(Edit1.text);
      Edit1.Text:=»;
      Resultado:=cantidad1-cantidad2;
      ans:=Resultado;
    end
    else if opcion=3 then
    begin
      cantidad2:=StrToFloat(Edit1.text);
      Edit1.Text:=»;
      Resultado:=cantidad1*cantidad2;
      ans:=Resultado;
    end
    else if opcion=4 then
    begin
      cantidad2:=StrToFloat(Edit1.text);
      Edit1.Text:=»;
      Resultado:=cantidad1/cantidad2;
      ans:=Resultado;
    end
    else begin
      Resultado:=ans;
    end;

    Edit1.text:=FloatToStr(Resultado);
  end;

procedure TForm1.Button15Click(Sender: TObject);
  begin
    opcion:=2;
    cantidad1:=StrToFloat(Edit1.text);
    Edit1.Text:=»;
  end;

procedure TForm1.Button13Click(Sender: TObject);
  begin
    cantidad1:=StrToFloat(Edit1.text);
      opcion:=3;
    Edit1.Text:=»;
  end;

procedure TForm1.Button14Click(Sender: TObject);
  begin
    cantidad1:=StrToFloat(Edit1.text);
    opcion:=4;
    Edit1.Text:=»;
  end;

procedure TForm1.Button16Click(Sender: TObject);
  begin
    Edit1.text:=»;
    cantidad1:=0;
    cantidad2:=0;
    Resultado:=0;
    opcion:=0;
  end;

procedure TForm1.Button17Click(Sender: TObject);
begin
  longitud:=Edit1.GetTextLen;
  auxiliar:=Edit1.Text;
  Edit1.Text:=»;

  if longitud>0 then
    begin
      for C:=0 to longitud-1 do
      begin
        Edit1.Text:=Edit1.Text+auxiliar[C];
      end

    end
end;

end.

19 respuestas

  1. muy bueno

  2. oye…muchas gracias…era exactamente lo que estaba buscando…se te agradece mucho

  3. no puedo hacer correo me puedes indicar q hace cada procedimiento o mostrar en un grafico lo que cada boton hace profa y gracias

  4. podrias mostrarme el formulariode esta calculadora por favor?

  5. oie necesito ke me explikes xq tienes 18 botones, ke es lo ke hace el boton 18 porfa si me puedes explikr??? me urge

  6. procedure TForm1.Button18Click(Sender: TObject);
    begin
    opcion:=1;
    cantidad1:=StrToFloat(Edit1.text);
    Edit1.Text:=”;
    end;

    ahi podras ver k se le asigna la opcion 1 y esa opcion es la de «suma», por lo que el boton 18 lo que realiza es una adicion. Saludos.

  7. aaa esk me salen errores en el Edit1.Text:=Edit1.Text+’1′;
    yo le fui poniendo al boton 1 boton 1
    y asi sucesivamente
    y la evrdad ya no entiendo esk apenas empiezo con esto del delphi y me hago un´pokito de bolas xq yo solo utilize 17 botones entonces ya no se ke onda auxilio!!!!!!!!!!!!!!!!!!!!!!!!!!

  8. jajaj ese problema ya lo resolvi
    ahora tengo otro, cuando teclea un num
    y le kiero sumar otro desaparece el num anterior y no hace ninguna operacion ¿?

  9. hola los odigo muy bien pero un ejemplo yo nunca e tocado el programa de delphi por que no hacen un tutorial donde empiese desde cero ejemplo abrir el programa nuevo proyecto elegino que tipo de proyecto vamos hacer y eso si tiene un gia como esta que explico me la puede pasar por correo es urgente este es mi correo.

    dreamjoel@live.com

  10. Hey una pregunta… todo me sale bien, hasta el momento q debo colocar decimales, me sale un error y me botea el proyecto… q se debe hacer para evitar esto..?

    agradeceria tu ayuda..! ^^

  11. para que es el boton 17

  12. muchas gracias, realmente es muy servicial… lo que andaba buscando…

  13. oie mira lo que nesesito es que cada ves que le el boton de + valla sumando por que como lo tengo si le doy 2+2+2 me da 4 en lugar que de 6 no se como hacerlo

  14. necesito saber el codigo para radio,seno y coseno porfa. apenas inicio en delphi y porfavor el codigo para hacer k aparescan numeros sucesivos x ejemplo 5+5+5 y asta lo ultimo apretar el = y k salga el resultado de esta suma osea 15

  15. a esto yo llamo dejarlo expecificamente esplicado

  16. que hace cada boton? ya saber mas o menos la logica, es que soy nuevo en esto de delphi (:

  17. hola esta muy bueno pero alguien me puede decir el codigo k se utiliza para bloquerar el texto en donde da mis resultados

  18. Como le agrego cambiar de binario a decimal y a hexadecimal, me pueden ayudar por favor

  19. Amigo no me corre cual seria el problema

Replica a Reinaldo Carrillo Cancelar la respuesta