Ir ao conteúdo
  • Cadastre-se

Projeto calculadora


Bellator

Posts recomendados

Estou tentando criar uma calculadora simples, mas quando executo o programa os valores das operações saem incorretos, gostaria que alguém me ajudasse por favor, o código está ai em baixo:

unit Calcula;

interface

uses

 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

 StdCtrls, Buttons;

type

 TForm1 = class(TForm)

   SpeedButton1: TSpeedButton;

   SpeedButton2: TSpeedButton;

   SpeedButton3: TSpeedButton;

   SpeedButton4: TSpeedButton;

   SpeedButton5: TSpeedButton;

   SpeedButton6: TSpeedButton;

   SpeedButton7: TSpeedButton;

   SpeedButton8: TSpeedButton;

   SpeedButton9: TSpeedButton;

   SpeedButton10: TSpeedButton;

   Visor: TEdit;

   SpeedButton11: TSpeedButton;

   SpeedButton12: TSpeedButton;

   SpeedButton13: TSpeedButton;

   SpeedButton14: TSpeedButton;

   SpeedButton15: TSpeedButton;

   SpeedButton16: TSpeedButton;

   SpeedButton17: TSpeedButton;

   procedure SpeedButton17Click(Sender: TObject);

   procedure calcular;

   procedure SpeedButton1Click(Sender: TObject);

   procedure SpeedButton2Click(Sender: TObject);

   procedure SpeedButton3Click(Sender: TObject);

   procedure SpeedButton4Click(Sender: TObject);

   procedure SpeedButton5Click(Sender: TObject);

   procedure SpeedButton6Click(Sender: TObject);

   procedure SpeedButton7Click(Sender: TObject);

   procedure SpeedButton8Click(Sender: TObject);

   procedure SpeedButton9Click(Sender: TObject);

   procedure SpeedButton11Click(Sender: TObject);

   procedure SpeedButton12Click(Sender: TObject);

   procedure SpeedButton13Click(Sender: TObject);

   procedure SpeedButton14Click(Sender: TObject);

   procedure SpeedButton16Click(Sender: TObject);

   procedure SpeedButton15Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

   procedure SpeedButton10Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

 opera1,opera2,opera3: real;

 sinal: integer;

implementation

{$R *.DFM}

procedure TForm1.calcular;

begin

case sinal of

1: opera3:=opera3+opera1+opera2;

2: opera3:=opera3-opera1-opera2;

3: opera3:=opera3/opera1/opera2;

4: opera3:=opera3*opera1*opera2;

end;

opera1:=0;

opera2:=0;

end;

procedure TForm1.SpeedButton17Click(Sender: TObject);

begin

 visor.Text:='';

 sinal:=0;

 opera1:=0;

 opera2:=0;

 opera3:=0;

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

  if sinal=0 then

   begin

     visor.Text:=visor.text+'1';

     opera1:=strtofloat(visor.text);

   end

   else

   begin

     visor.Text:=visor.Text+'1';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

 if sinal=0 then

   begin

     visor.Text:=visor.text+'2';

     opera1:=strtofloat(visor.text);

   end

   else

   begin

     visor.Text:=visor.Text+'2';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

 if sinal=0 then

   begin

     visor.Text:=visor.text+'3';

     opera1:=strtofloat(visor.text);

   end

   else

   begin

     visor.Text:=visor.Text+'3';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

procedure TForm1.SpeedButton4Click(Sender: TObject);

begin

 if sinal=0 then

   begin

     visor.Text:=visor.text+'4';

     opera1:=strtofloat(visor.text);

   end

   else

   begin

     visor.Text:=visor.Text+'4';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

procedure TForm1.SpeedButton5Click(Sender: TObject);

begin

 if sinal=0 then

   begin

     visor.Text:=visor.text+'5';

     opera1:=strtofloat(visor.text);

   end

   else

   begin

     visor.Text:=visor.Text+'5';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

procedure TForm1.SpeedButton6Click(Sender: TObject);

begin

 if sinal=0 then

   begin

     visor.Text:=visor.text+'6';

     opera1:=strtofloat(visor.text);

   end

   else

   begin

     visor.Text:=visor.Text+'6';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

procedure TForm1.SpeedButton7Click(Sender: TObject);

begin

 if sinal=0 then

   begin

     visor.Text:=visor.text+'7';

     opera1:=strtofloat(visor.text);

   end

   else

   begin

     visor.Text:=visor.Text+'7';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

procedure TForm1.SpeedButton8Click(Sender: TObject);

begin

if sinal=0 then

   begin

     visor.Text:=visor.text+'8';

     opera1:=strtofloat(visor.text);

   end

   else

   begin

     visor.Text:=visor.Text+'8';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

procedure TForm1.SpeedButton9Click(Sender: TObject);

begin

if sinal=0 then

   begin

     visor.Text:=visor.text+'9';

     opera1:=strtofloat(visor.text);

   end

   else

   begin

     visor.Text:=visor.Text+'9';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

procedure TForm1.SpeedButton11Click(Sender: TObject);

begin

 sinal:=1;

 visor.Text:='';

end;

procedure TForm1.SpeedButton12Click(Sender: TObject);

begin

 sinal:=2;

 visor.text:='';

end;

procedure TForm1.SpeedButton13Click(Sender: TObject);

begin

 sinal:=3;

 visor.Text:='';

end;

procedure TForm1.SpeedButton14Click(Sender: TObject);

begin

 sinal:=4;

 visor.text:='';

end;

procedure TForm1.SpeedButton16Click(Sender: TObject);

begin

 visor.text:=floattostr(opera3);

end;

procedure TForm1.SpeedButton15Click(Sender: TObject);

begin

 if sinal=0 then

  begin

   visor.text:=visor.text+',';

  end

  else

   begin

     visor.text:=visor.text+',';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 sinal:=0;

end;

procedure TForm1.SpeedButton10Click(Sender: TObject);

begin

 if sinal=0 then

   begin

     visor.Text:=visor.text+'0';

     opera1:=strtofloat(visor.text);

   end

   else

   begin

     visor.Text:=visor.Text+'0';

     opera2:=strtofloat(visor.text);

     calcular;

   end;

end;

end.

Link para o comentário
Compartilhar em outros sites

  • 10 anos depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...