unit U_inicial;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons;

type
  TF_inicial = class(TForm)
    txt_visor: TEdit;
    btn_1: TSpeedButton;
    btn_2: TSpeedButton;
    btn_3: TSpeedButton;
    btn_6: TSpeedButton;
    btn_5: TSpeedButton;
    btn_4: TSpeedButton;
    btn_9: TSpeedButton;
    btn_8: TSpeedButton;
    btn_7: TSpeedButton;
    btn_0: TSpeedButton;
    btn_mult: TSpeedButton;
    btn_div: TSpeedButton;
    btn_som: TSpeedButton;
    btn_sub: TSpeedButton;
    btn_igua: TSpeedButton;
    btn_clea: TSpeedButton;
    procedure btn_0Click(Sender: TObject);
    procedure btn_1Click(Sender: TObject);
    procedure btn_2Click(Sender: TObject);
    procedure btn_3Click(Sender: TObject);
    procedure btn_4Click(Sender: TObject);
    procedure btn_5Click(Sender: TObject);
    procedure btn_6Click(Sender: TObject);
    procedure btn_7Click(Sender: TObject);
    procedure btn_8Click(Sender: TObject);
    procedure btn_9Click(Sender: TObject);
    procedure btn_cleaClick(Sender: TObject);
    procedure btn_somClick(Sender: TObject);
    procedure btn_subClick(Sender: TObject);
    procedure btn_divClick(Sender: TObject);
    procedure btn_multClick(Sender: TObject);
    procedure btn_iguaClick(Sender: TObject);
  private
    { Private declarations }
   var
   valor : Double;
   funcao : Char;

  public
    { Public declarations }
  end;

var
  F_inicial: TF_inicial;

implementation

{$R *.dfm}

procedure TF_inicial.btn_0Click(Sender: TObject);
begin
//Botao 0
   txt_visor.Text := txt_visor.Text + TSpeedButton(sender).Caption;
end;

procedure TF_inicial.btn_1Click(Sender: TObject);
begin
//Botão 1
  txt_visor.Text := txt_visor.Text + TSpeedButton(sender).Caption;
end;

procedure TF_inicial.btn_2Click(Sender: TObject);
begin
//botao 2
   txt_visor.Text := txt_visor.Text + TSpeedButton(sender).Caption;
end;

procedure TF_inicial.btn_3Click(Sender: TObject);
begin
//botao 3
   txt_visor.Text := txt_visor.Text + TSpeedButton(sender).Caption;
end;

procedure TF_inicial.btn_4Click(Sender: TObject);
begin
//botao 4
   txt_visor.Text := txt_visor.Text + TSpeedButton(sender).Caption;
end;

procedure TF_inicial.btn_5Click(Sender: TObject);
begin
//botao 5
   txt_visor.Text := txt_visor.Text + TSpeedButton(sender).Caption;
end;

procedure TF_inicial.btn_6Click(Sender: TObject);
begin
//botao 6
   txt_visor.Text := txt_visor.Text + TSpeedButton(sender).Caption;
end;

procedure TF_inicial.btn_7Click(Sender: TObject);
begin
//botao 7
   txt_visor.Text := txt_visor.Text + TSpeedButton(sender).Caption;
end;

procedure TF_inicial.btn_8Click(Sender: TObject);
BEGIN
//botao 8
   txt_visor.Text := txt_visor.Text + TSpeedButton(sender).Caption;
end;

procedure TF_inicial.btn_9Click(Sender: TObject);
begin
//botao 9
   txt_visor.Text := txt_visor.Text + TSpeedButton(sender).Caption;
end;

procedure TF_inicial.btn_cleaClick(Sender: TObject);
begin
//botao limpar
   txt_visor.Clear;
end;

procedure TF_inicial.btn_divClick(Sender: TObject);
begin
//divisao
   valor := StrToFloat(txt_visor.Text);
   txt_visor.Clear;

   funcao := 'd';
end;

procedure TF_inicial.btn_iguaClick(Sender: TObject);
begin
//igual

   case funcao of
   'a' : valor := valor + StrToFloat(txt_visor.Text);
   's' : valor := valor - StrToFloat(txt_visor.Text);
   'd' : valor := valor / StrToFloat(txt_visor.Text);
   'm' : valor := valor * StrToFloat(txt_visor.Text);
   end;

procedure TF_inicial.btn_multClick(Sender: TObject);
begin
//multiplicacao
   valor := StrToFloat(txt_visor.Text) ;
   txt_visor.Clear;

   funcao := 'm';
end;

procedure TF_inicial.btn_somClick(Sender: TObject);
begin
//adição
   valor := StrToFloat(txt_visor.Text) ;
   txt_visor.Clear ;

   funcao := 'a';
end;

procedure TF_inicial.btn_subClick(Sender: TObject);
begin
//subtracao
   valor := StrToFloat(txt_visor.Text)  ;
   txt_visor.Clear ;

   funcao := 's';
end;

end.
