Criando uma calculadora básica em Delphi

Veja neste artigo como criar uma calculadora básica em Delphi, utilizando apenas componentes nativos e código de fácil compreensão, facilitando o aprendizado daqueles que estão iniciando os estudos dessa tecnologia.

Olá pessoal, nesse artigo será demonstrado como criar uma simples calculadora em Delphi. Este material é destinado aqueles que estão iniciando os estudos dessa linguagem de programação e IDE.

Será utilizado o componente TEdit, que se encontra na paleta Standard e o componente TSpeedButton da paleta Additional. Ao invés de utilizar o TSpeedButton, pode ser utilizado o TButton, pois as propriedades que serão utilizadas aqui são comuns aos dois.

Vamos iniciar um novo projeto no Delphi. Para essa calculadora será necessário apenas um form. Onde serão adicionados os seguintes componentes: 1 TEdit e 18 TSpeedButton. Vamos organizá-los da seguinte maneira, veja abaixo.


Figura 1: TSpeedButton e TEdits organizados na Form

Agora que o form já foi organizado com os componentes TEdit e TSpeedButton, vamos alterar as propriedades Caption e Name dos TSpeedButton no Object Inspector. Veja abaixo como deve ficar.

ComponenteNameCaption
TSpeedButton1Um1
TSpeedButton2Dois2
TSpeedButton3Três3
TSpeedButton4Quatro4
TSpeedButton5Cinco5
TSpeedButton6Seis6
TSpeedButton7Sete7
TSpeedButton8Oito8
TSpeedButton9Nove9
TSpeedButton10Zero0
TSpeedButton11Mais+
TSpeedButton12Menos-
TSpeedButton13Dividir/
TSpeedButton14Multiplicar*
TSpeedButton15Maismenos+-
TSpeedButton16Virgula,
TSpeedButton17Igual=
TSpeedButton18LlimparC

Tabela 1: Propriedades Name e Caption dos TSpeedButtons

Agora que já alteramos as devidas propriedades do TSpeedButton, vamos configurar as seguintes propriedades do TEdit no Object Inspector: Name, Text e deixar a propriedade Enabled do TEdit como False.

ComponentNameText
TEdit1VisorDeixe Vazio

Tabela 2: Propriedades Name e Text do TEdit

Veja como o visual da nossa calculadora já melhorou com essas alterações. Você também pode organizar os botões como bem entender, assim deixando a seu gosto.


Figura 2: Botões com suas propriedades alteradas

Listagem 1: Declarando variáveis globais

private { Private declarations } public { Public declarations } end; var Form1: TForm1; valor1 : real; valor2 : real; funcao : integer; implementation

Vamos partir agora para a configuração dos botões.

Listagem 2: Vamos por o seguinte código nos botões de 0 a 9

procedure TForm1.umClick(Sender: TObject); begin visor.Text := visor.Text + (Sender as TSpeedButton).Caption end;

Observação: Basta fazer isso no evento OnClick de um único botão. Depois, selecionar todos os demais botões numéricos e, no Objetct Inspector, na aba Events, selecionar o método criado para o evento OnClick dos botões selecionados.

Já configuramos os botões numéricos, vamos então configurar agora os botões das operações, virgula e o limpar.

Listagem 3: Evento OnClick do botão mais

procedure TForm1.maisClick(Sender: TObject); begin valor1 := StrToFloat(visor.Text); visor.Text := ''; funcao := 1; end;

Listagem 4: Evento OnClick do botão menos

procedure TForm1.menosClick(Sender: TObject); begin valor1 := StrToFloat(visor.Text); visor.Text := ''; funcao := 2; end;

Listagem 5: Evento OnClick do botão Dividir

procedure TForm1.dividirClick(Sender: TObject); begin valor1 := StrToFloat(visor.Text); visor.Text := ''; funcao := 3; end;

Listagem 6: Evento OnClick do botão Multiplicar

procedure TForm1.multiplicarClick(Sender: TObject); begin valor1 := StrToFloat(visor.Text); visor.Text := ''; funcao := 4; end;

Listagem 7: Evento OnClick do botão “Mais ou Menos”

procedure TForm1.meisoumenosClick(Sender: TObject); begin visor.Text:='-'+visor.Text; end;

Listagem 8: Evento OnClick do botão Vírrgula

procedure TForm1.menosClick(Sender: TObject); begin valor1 := StrToFloat(visor.Text); visor.Text := ''; funcao := 2; end;

Listagem 9: Evento OnClick do botão limpar

procedure TForm1.cClick(Sender: TObject); begin visor.Text:=''; end;

Vamos configurar agora o botão igual, para isso inserimos o seguinte código.

Listagem 10: Evento OnClick do botão igual

procedure TForm1.igualClick(Sender: TObject); var soma: real; begin valor2:=StrToFloat(visor.Text); case (funcao) of 1: begin soma:=valor1+valor2; visor.text:=FloatToStr(soma); end; 2: begin soma:=valor1-valor2; visor.text:=FloatToStr(soma); end; 3: begin soma:=valor1*valor2; visor.text:=FloatToStr(soma); end; 4: begin if(valor2<>0)then begin soma:=valor1/valor2; visor.text:=FloatToStr(soma); end else begin SHowMessage('Divisão por zero!!'); visor.Text:='ERRO'; end end end; //finaliza o case end;

Esse será o código responsável por efetuar a operação que o usuário desejar, somar, diminuir, multiplicar, dividir e etc.

Já estamos com todos os botões numéricos e os demais botões configurados, vamos agora apenas aterar algumas propriedades do form. Para isso clique no form e no Object Inspector acess o evento OnShow e adicione essas duas linhas de código.

Listagem 11: Código OnShow do Form

procedure TForm1.FormShow(Sender: TObject); begin Valor1 := 0; valor2 := 0; end;

Figura 3: Object Inspector – OnShow do Form

Na propriedade KeyPreview, coloque como True.


Figura 4: KeyPreview ativado (True)

Agora, para finalizar as alterações no form, adicione o seguinte código no evento OnKeyDown. Esse código que vamos inserir agora serve para que possam ser utilizados os números do teclado ao invés de ter que ficar clicando com o mouse em cada botão na calculadora.


Figura 5: Acessando o evento OnKeyDown do form

Listagem 12: Evento OnKeyDown do form

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_NUMPAD1 then um.Click; if Key = VK_NUMPAD2 then dois.click; if Key = VK_NUMPAD3 then tres.click; if Key = VK_NUMPAD4 then quatro.click; if Key = VK_NUMPAD5 then cinco.click; if Key = VK_NUMPAD6 then seis.click; if Key = VK_NUMPAD7 then sete.click; if Key = VK_NUMPAD8 then oito.click; if Key = VK_NUMPAD9 then nove.click; if Key = VK_NUMPAD0 then zero.click; if Key = VK_ADD then mais.click; if Key = VK_SUBTRACT then menos.click; if Key = VK_MULTIPLY then multiplicar.click; if Key = VK_DIVIDE then dividir.click; if Key = VK_RETURN then igual.click; if Key = VK_DECIMAL then virgula.Click; if Key = VK_DELETE then c.click; end;

Assim terminamos a nossa calculadora, execute e a veja em funcionamento.

Espero que esse artigo tenha sido útil a vocês leitores, fico à disposição para tirar duvida, aceito sugestões de novos artigos.

Até a próxima.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados