NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosLivrodelphibas › Capítulo 3 : 05
Quer receber novidades e e-books gratuitos?
« Anterior Δ Página principal ¤ Índice Próxima »
Delphi Básico
Autor: Rodrigo Costa e Silvio Ferreira
Lição 21 de 29 - Programando os demais botões

Vamos agora dar funcionalidade aos demais botões da calculadora (botão “BackSpace”, botão “C” e botão “,”).

O botão “BackSpace” será utilizado para apagar os dígitos da direita para esquerda. Digite o seguinte código em seu evento OnClick:

if edt.Text <> '' then
begin
     edt.Text:=copy(edt.Text,1,length(edt.Text)-1);
end;

Este código irá copiar do primeiro até o penúltimo dígito do edt, ou seja, estará excluindo o último digito e assim apagando da direita para a esquerda.

O botão “C” será utilizado para zerar a variável visor, limpar a operação e limpar o  edt liberando a calculadora para uma nova conta. Digite o seguinte código em seu evento OnClick:

edt.Clear;
visor:=0;
operacao:='  ';

O Botão “,” servirá para inserir o símbolo decimal no edt. Para isto digite o seguinte código no evento OnClick do botão “,” (btnv):

if pos(',',edt.Text) = 0 then
     edt.Text:=edt.Text+',';

Este código irá inserir uma vírgula no edt caso já não exista uma.

Para concluir nossa calculadora, falta programar o Menu Finalizar > Sair que criamos anteriormente. Para isso, dê um duplo clique sobre o objeto MainMenu, selecione o menu “Sair” e acesse o seu evento OnClick. Digite o seguinte código para fechar a calculadora:

close; 

Ponto, nossa calculadora está pronta. Execute o projeto para gerar o executável na pasta onde foi salvo o projeto. Abaixo segue o código completo da Unit_calculadora:

unit Unit_Calculadora;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Menus;

type
  TForm_Calculadora = class(TForm)
    edt: TEdit;
    btnbk: TButton;
    btnc: TButton;
    btnmais: TButton;
    btnmenos: TButton;
    btnx: TButton;
    btnd: TButton;
    btnigual: TButton;
    btnv: TButton;
    btn1: TButton;
    btn2: TButton;
    btn3: TButton;
    btn4: TButton;
    btn5: TButton;
    btn6: TButton;
    btn7: TButton;
    btn8: TButton;
    btn9: TButton;
    btn0: TButton;
    StatusBar1: TStatusBar;
    MainMenu1: TMainMenu;
    Sair1: TMenuItem;
    Sair2: TMenuItem;
    procedure btn1Click(Sender: TObject);
    procedure btnbkClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnmaisClick(Sender: TObject);
    procedure btnmenosClick(Sender: TObject);
    procedure btnxClick(Sender: TObject);
    procedure btndClick(Sender: TObject);
    procedure btnigualClick(Sender: TObject);
    procedure btnvClick(Sender: TObject);
    procedure btncClick(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
    procedure btn4Click(Sender: TObject);
    procedure btn5Click(Sender: TObject);
    procedure btn6Click(Sender: TObject);
    procedure btn7Click(Sender: TObject);
    procedure btn8Click(Sender: TObject);
    procedure btn9Click(Sender: TObject);
    procedure btn0Click(Sender: TObject);
    procedure Sair2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure soma;
    procedure subtracao;
    procedure multiplicacao;
    procedure divisao;
  end;

var
  Form_Calculadora: TForm_Calculadora;
  visor:real;
  operacao:char;

implementation

{$R *.dfm}

procedure TForm_Calculadora.btn1Click(Sender: TObject);
begin
  edt.Text:=edt.Text+'1';
end;

procedure TForm_Calculadora.btnbkClick(Sender: TObject);
begin
  if edt.Text <> '' then
  begin
    edt.Text:=copy(edt.Text,1,length(edt.Text)-1);
  end;
end;

procedure TForm_Calculadora.FormShow(Sender: TObject);
begin
  visor:=0;
end;

procedure TForm_Calculadora.btnmaisClick(Sender: TObject);
begin
  if edt.Text<>'' then
   begin
    if visor = 0 then
      visor:=strtofloat(edt.Text)
    else
      visor:=visor+strtofloat(edt.Text);

    edt.Clear;
    operacao:='+';
    StatusBar1.Panels[0].Text:=' Somando ';
   end
  else
    MessageDlg('Informe um valor antes de somar',mtWarning,[mbok],0);
end;

procedure TForm_Calculadora.btnmenosClick(Sender: TObject);
begin
  if edt.Text<>'' then
   begin
    if visor = 0 then
      visor:=strtofloat(edt.Text)
    else
      visor:=visor-strtofloat(edt.Text);

    edt.Clear;
    operacao:='-';
    StatusBar1.Panels[0].Text:=' Subtraindo ';
   end
  else
    MessageDlg('Informe um valor antes de subtrair',mtWarning,[mbok],0);
end;

procedure TForm_Calculadora.btnxClick(Sender: TObject);
begin
  if edt.Text<>'' then
   begin
    if visor = 0 then
      visor:=strtofloat(edt.Text)
    else
      visor:=visor*strtofloat(edt.Text);

    edt.Clear;
    operacao:='x';
    StatusBar1.Panels[0].Text:=' Multiplicando ';
   end
  else
    MessageDlg('Informe um valor antes de multiplicar',mtWarning,[mbok],0);
end;

procedure TForm_Calculadora.btndClick(Sender: TObject);
begin
  if edt.Text<>'' then
   begin
    if visor = 0 then
      visor:=strtofloat(edt.Text)
    else
      visor:=visor-strtofloat(edt.Text);

    edt.Clear;
    operacao:='/';
    StatusBar1.Panels[0].Text:=' Dividindo ';
   end
  else
    MessageDlg('informe um valor antes de dividir',mtWarning,[mbok],0);
end;

procedure TForm_Calculadora.soma;
var
  resultado:real;
begin
  if edt.Text <> '' then
   begin
    resultado:=visor+strtofloat(edt.Text);
    edt.Text:=floattostr(resultado);
   end
  else
    edt.Text:=floattostr(visor);

  visor:=0;
  operacao:=' ';
  StatusBar1.Panels[0].Text:=' ';
end;

procedure TForm_Calculadora.divisao;
var
  resultado:real;
begin
  if edt.Text <> '' then
   begin
    resultado:=visor/strtofloat(edt.Text);
    edt.Text:=floattostr(resultado);
   end
  else
    edt.Text:=floattostr(visor);

  visor:=0;
  operacao:=' ';
  StatusBar1.Panels[0].Text:=' ';
end;

procedure TForm_Calculadora.multiplicacao;
var
  resultado:real;
begin
  if edt.Text <> '' then
   begin
    resultado:=visor*strtofloat(edt.Text);
    edt.Text:=floattostr(resultado);
   end
  else
    edt.Text:=floattostr(visor);

  visor:=0;
  operacao:=' ';
  StatusBar1.Panels[0].Text:=' ';
end;

procedure TForm_Calculadora.subtracao;
var
  resultado:real;
begin
  if edt.Text <> '' then
   begin
    resultado:=visor-strtofloat(edt.Text);
    edt.Text:=floattostr(resultado);
   end
  else
    edt.Text:=floattostr(visor);

  visor:=0;
  operacao:=' ';
  StatusBar1.Panels[0].Text:=' ';
end;

procedure TForm_Calculadora.btnigualClick(Sender: TObject);
begin
  case operacao of
    '+': soma;
    '-': subtracao;
    'x': multiplicacao;
    '/': divisao;
  else
    MessageDlg('Você precisa escolher uma Operação',mtWarning,[mbok],0)
  end;
end;

procedure TForm_Calculadora.btnvClick(Sender: TObject);
begin
  if pos(',',edt.Text) = 0 then
  edt.Text:=edt.Text+',';
end;

procedure TForm_Calculadora.btncClick(Sender: TObject);
begin
  edt.Clear;
  visor:=0;
  operacao:=' ';
end;

procedure TForm_Calculadora.btn2Click(Sender: TObject);
begin
  edt.Text:=edt.Text+'2';
end;

procedure TForm_Calculadora.btn3Click(Sender: TObject);
begin
  edt.Text:=edt.Text+'3';
end;

procedure TForm_Calculadora.btn4Click(Sender: TObject);
begin
  edt.Text:=edt.Text+'4';
end;

procedure TForm_Calculadora.btn5Click(Sender: TObject);
begin
  edt.Text:=edt.Text+'5';
end;

procedure TForm_Calculadora.btn6Click(Sender: TObject);
begin
  edt.Text:=edt.Text+'6';
end;

procedure TForm_Calculadora.btn7Click(Sender: TObject);
begin
  edt.Text:=edt.Text+'7';
end;

procedure TForm_Calculadora.btn8Click(Sender: TObject);
begin
  edt.Text:=edt.Text+'8';
end;

procedure TForm_Calculadora.btn9Click(Sender: TObject);
begin
  edt.Text:=edt.Text+'9';
end;

procedure TForm_Calculadora.btn0Click(Sender: TObject);
begin
  edt.Text:=edt.Text+'0';
end;

procedure TForm_Calculadora.Sair2Click(Sender: TObject);
begin
      close;
end;
end.

« Anterior Δ Página principal ¤ Índice Próxima »

* Você pode baixar (fazer download) do conteúdo completo deste curso, em formato PDF, com 179 páginas, comprando o seguinte e-book:

DELPHI BÁSICO

LIVROS INDICADOS DE DELPHI:

Gostou deste artigo?

Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2019 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI