Ver Mensaje Individual
  #1  
Antiguo 27-07-2016
jhony2201 jhony2201 is offline
Registrado
NULL
 
Registrado: jul 2016
Posts: 3
Reputación: 0
jhony2201 Va por buen camino
Problemas con Calculadora en Delphi

Buenos días a todos, soy nuevo en el Club,mi nombre es Juan Marcelo, soy estudiante y vivo en Salta Argentina, como actividad nos dieron que hagamos una calculadora.
Estoy teniendo un problema con el cambio de signo +-, e probado con algunos códigos y no logro hacer que funcione correctamente.
En el código que esta más abajo, la calculadora coloca el signo menos y lo saca; pero al realizar una operación por ejemplo:
12+(-6) me arroja como resultado 0. No se cual es el error. Si alguien me puede ayudar a resolver este problema.
Desde ya muchas gracias.

Código de la calculadora:

Código Delphi [-]
unit UCalculadora;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    lblvisor: TLabel;
    btn1: TButton;
    btn2: TButton;
    btn3: TButton;
    btn4: TButton;
    btn5: TButton;
    btn6: TButton;
    btn7: TButton;
    btn8: TButton;
    btn9: TButton;
    btn0: TButton;
    btn11: TButton;
    btn12: TButton;
    btn13: TButton;
    btn14: TButton;
    btn15: TButton;
    btn10: TButton;
    btn16: TButton;
    btn17: TButton;
    btn18: TButton;
    btn19: TButton;
    btn21: TButton;
    btn22: TButton;
    procedure btn0Click(Sender: TObject);
    procedure btn15Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure btn10Click(Sender: TObject);
    procedure btn11Click(Sender: TObject);
    procedure btn12Click(Sender: TObject);
    procedure btn13Click(Sender: TObject);
    procedure btn14Click(Sender: TObject);
    procedure btn16Click(Sender: TObject);
    procedure btn17Click(Sender: TObject);
    procedure btn18Click(Sender: TObject);
    procedure btn19Click(Sender: TObject);
    procedure btn21Click(Sender: TObject);
    procedure btn22Click(Sender: TObject);


    private
    { Private declarations }
    op1,op2,op3:Extended;
    op:Integer;
    estadovisor:Boolean;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn0Click(Sender: TObject);
begin
     if (Sender is TButton) and (lblvisor.Caption='0') then
      lblvisor.Caption:=(sender as TButton).Caption
      else if not estadovisor then
     lblvisor.Caption:=lblvisor.Caption+ (sender as TButton).Caption
     else
         begin
         lblvisor.Caption:=(Sender as TButton).Caption;
         estadovisor:=False;
         end;
end;

procedure TForm1.btn10Click(Sender: TObject);
begin
    op2:=StrToFloat(lblvisor.Caption);
     case op of
     0:lblvisor.Caption:= FloatToStr(op1+op2);
     1:lblvisor.Caption:= FloatToStr(op1-op2);
     2:lblvisor.Caption:= FloatToStr(op1*op2);
     3: if op2<>0 then lblvisor.Caption:= FloatToStr(op1/op2);
     4: lblvisor.Caption:= FloatToStr(Sqr(op1));
     5: lblvisor.Caption:= FloatToStr(1/op1);
     6: lblvisor.Caption:= FloatToStr((op1*op2)/100);
     7: lblvisor.Caption:= FloatToStr(Sqrt(op1));

end;
end;

procedure TForm1.btn11Click(Sender: TObject);
begin
op1:=StrToFloat(lblvisor.Caption);
op:=0  ;
estadovisor:=True;
end;

procedure TForm1.btn12Click(Sender: TObject);
begin
 op1:=StrToFloat(lblvisor.Caption);
 op:=1;
estadovisor:=True;
end;

procedure TForm1.btn13Click(Sender: TObject);
begin
    op1:=StrToFloat(lblvisor.Caption);
 op:=2;
estadovisor:=True;
end;

procedure TForm1.btn14Click(Sender: TObject);
begin
  op1:=StrToFloat(lblvisor.Caption);
 op:=3;
estadovisor:=True;
end;

procedure TForm1.btn15Click(Sender: TObject);
begin
    if Pos (',', lblvisor.Caption)=0 then
    lblvisor.Caption:=lblvisor.Caption+',';

end;

procedure TForm1.btn16Click(Sender: TObject);
begin
      lblvisor.Caption:='0';
      op1:=0;
      op2:=0;
      op:=-1;
end;

procedure TForm1.btn17Click(Sender: TObject);
begin
   op1:=StrToFloat(lblvisor.Caption);
 op:=4;
estadovisor:=True
end;

procedure TForm1.btn18Click(Sender: TObject);
begin
    op1:=StrToFloat(lblvisor.Caption);
 op:=5;
estadovisor:=True
end;

procedure TForm1.btn19Click(Sender: TObject);
begin
     op1:=StrToFloat(lblvisor.Caption);
 op:=6;
estadovisor:=True
end;

procedure TForm1.btn21Click(Sender: TObject);
begin
    op1:=StrToFloat(lblvisor.Caption);
 op:=7;
estadovisor:=True
end;

procedure TForm1.btn22Click(Sender: TObject);
begin
   op1:=StrToFloat(lblvisor.Caption);
   if op1<> 0 then
   lblvisor.Caption:= FloatToStr(op1*(-1));
estadovisor:=True
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
           estadovisor:=False;
end;


end.

Última edición por Casimiro Notevi fecha: 27-07-2016 a las 13:06:13.
Responder Con Cita