Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Calculadora com botões

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Desenvolvimento Calculadora com botões

    Estou desenvolvendo uma calculadora com botões,porém toda vez que eu clico no botão Adição,subtração,Divisão ou multiplicação e clico no igual o valor volta a zero.Quem puder me ajudar, fico grato.

    Código:
    unit UnitCalculadora;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        visor: 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;
        procedure Button4Click(Sender: TObject);
        procedure Button8Click(Sender: TObject);
        procedure Button12Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button7Click(Sender: TObject);
        procedure Button11Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button6Click(Sender: TObject);
        procedure Button10Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button5Click(Sender: TObject);
        procedure Button9Click(Sender: TObject);
        procedure Button13Click(Sender: TObject);
        procedure Button14Click(Sender: TObject);
        procedure Button15Click(Sender: TObject);
        procedure Button16Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button4Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'7';
    end;
    
    procedure TForm1.Button8Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'8';
    end;
    
    procedure TForm1.Button12Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'9';
    end;
    
    procedure TForm1.Button3Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'4';
    end;
    
    procedure TForm1.Button7Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'5';
    end;
    
    procedure TForm1.Button11Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'6';
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'3';
    end;
    
    procedure TForm1.Button6Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'2';
    end;
    
    procedure TForm1.Button10Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'1';
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'0';
    end;
    
    procedure TForm1.Button5Click(Sender: TObject);
    begin
    visor.Text:=visor.Text +'.';
    end;
    
    procedure TForm1.Button9Click(Sender: TObject);
    var total : string;
         valorreal : real;
         valor:real;
         operacao:integer;
         numero:integer;
    
    
     begin
    val(visor.text, valorreal,numero); {função que passa os valores para as variáveis}
       case operacao of
       1: valor:= valor + valorreal; {se operação for 1, então soma os valores}
       2: valor:= valor - valorreal; {se operação for 2, então subtrai os valores}
       3: if (valorreal = 0) then {se operação for 3, então divide os valores, mas se por acaso um dos valores for igual a zero, então o resultado será zero, caso contrário efetua a divisão}
          valor :=0
          else
             valor:= valor / valorreal;
       4: valor:= valor * valorreal; {se operação for 4, então multiplica os valores}
    end;
       str(valor:2:0, total);{valor:2:0 é para colocar casa decimal}
       visor.text:= total;
       end;
    
    
    procedure TForm1.Button13Click(Sender: TObject);
     var valor,operacao:real;
      begin
    if (visor.Text <> '')  then {aqui iremos verificar se o valor contido no visor é vazio, ou seja,  sem nenhum valor}
       begin
    
      valor:=StrToFloat(visor.text); {a variável valor recebe o valor contido no visor, devidamente transformado em um valor float, através da variável strtofloat}
      operacao:=1; {a variável operacao recebe 1, que é o valor para a operação de soma ser recohecida mais adiante}
      visor.text:=''; {visor fica em branco}
      end;
    end;
    
    procedure TForm1.Button14Click(Sender: TObject);
     var valor,operacao:real;
      begin
    if (visor.Text <> '')  then {aqui iremos verificar se o valor contido no visor é vazio, ou seja,  sem nenhum valor}
       begin
    
      valor:=StrToFloat(visor.text); {a variável valor recebe o valor contido no visor, devidamente transformado em um valor float, através da variável strtofloat}
      operacao:=2; {a variável operacao recebe 1, que é o valor para a operação de soma ser recohecida mais adiante}
      visor.text:=''; {visor fica em branco}
      end;
    
    end;
    
    procedure TForm1.Button15Click(Sender: TObject);
     var valor,operacao:real;
      begin
    if (visor.Text <> '')  then {aqui iremos verificar se o valor contido no visor é vazio, ou seja,  sem nenhum valor}
       begin
    
      valor:=StrToFloat(visor.text); {a variável valor recebe o valor contido no visor, devidamente transformado em um valor float, através da variável strtofloat}
      operacao:=3; {a variável operacao recebe 1, que é o valor para a operação de soma ser recohecida mais adiante}
      visor.text:=''; {visor fica em branco}
      end;
    
    end;
    
    procedure TForm1.Button16Click(Sender: TObject);
     var valor,operacao:real;
      begin
    if (visor.Text <> '')  then {aqui iremos verificar se o valor contido no visor é vazio, ou seja,  sem nenhum valor}
       begin
    
      valor:=StrToFloat(visor.text); {a variável valor recebe o valor contido no visor, devidamente transformado em um valor float, através da variável strtofloat}
      operacao:=4; {a variável operacao recebe 1, que é o valor para a operação de soma ser recohecida mais adiante}
      visor.text:=''; {visor fica em branco}
      end;
    
    end;
    
    end.
X
Working...
X