Ir para conteúdo
Fórum Script Brasil
  • 0

Soma Em Edits


czanotta

Pergunta

Ola pessoal!!!!!Estou tentando fazer uma soma entre edits, mas não sei porque não esta dando certo pois relativamente é facil,estou usando o delphi 6.aí vai o codigo:

procedure Trecibo.Button3Click(Sender: TObject);

var

cota:real;

juros:real;

multa:real;

extra:real;

total:real;

begin

cota:=strtofloat(cota.text);

juros:=strtofloat(juros.text);

multa:=strtofloat(multa.text);

extra:=strtofloat(extra.text);

total:= cota + juros + multa + extra;

floattostr(total);

end;

Mudei o nome das edits para o mesmo nome das label.Ex: label "multa" / edit "multa.text"

Abraço

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Ola...

tenta mudar a linha que soma assim:

procedure Trecibo.Button3Click(Sender: TObject);
var
cota:real;
juros:real;
multa:real;
extra:real;
total:real;
begin
  cota:=strtofloat(cota.text);
  juros:=strtofloat(juros.text);  
  multa:=strtofloat(multa.text);
  extra:=strtofloat(extra.text);
  total:= FloatToStr(cota + juros + multa + extra);
end;

Acho que resolve..... :D

Editado por Eder
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --rvmprogramador --

Olá amigo.

Que me desculpe o nosso amigo Eder que tentou lhe ajudar, mas o código dele dá vários erros de compilação.

1º - O nome dos edits não pode ser igual ao nome das variáveis que você está usando para fazer as somas, pois o delphi pode se perder na hora de decidir o que é variável ou edit;

2º - Não é possível converter a soma dos valores de real para string (FloatToStr) e jogar numa váriável do tipo real, teria que ser uma variável do tipo string ou jogar em um label;

Veja abaixo como eu implementaria seu problema:

procedure Trecibo.Button3Click(Sender: TObject);

var

cota:real;

juros:real;

multa:real;

extra:real;

total:real;

begin

cota:=strtofloat(edcota.text);

juros:=strtofloat(edjuros.text);

multa:=strtofloat(edmulta.text);

extra:=strtofloat(edextra.text);

total:= cota + juros + multa + extra;

lbtotal.Caption:= FloatToStr(total);

end;

Espero ter ajudado!!! Um abraço.

Link para o comentário
Compartilhar em outros sites

  • 0
Estou tentando fazer uma soma entre edits, mas não sei porque não esta dando certo pois relativamente é facil
O que não está dando certo? O que está ocorrendo?

Voce deve ser objetivo em suas dúvidas - coloque os efeitos para que possamos mais facilmente identificar as causas ;)

tenta mudar a linha que soma assim:
procedure Trecibo.Button3Click(Sender: TObject);
var
cota:real;
juros:real;
multa:real;
extra:real;
total:real;
begin
  cota:=strtofloat(cota.text);
  juros:=strtofloat(juros.text);  
  multa:=strtofloat(multa.text);
  extra:=strtofloat(extra.text);
  total:= FloatToStr(cota + juros + multa + extra);
end;

Eder, a variável TOTAL é do tipo REAL - não vai receber STRING de jeito algum...

para a variável, a soma pode ser mantida:

total := cota + juros + multa + extra;

mas para visualização do resultado, teria que ser acrescentada a linha abaixo para que o Edit ref. a total a receba o total:

total.Edit := FloatToStr(cota + juros + multa + extra);

talvez fosse esta situação que você estava querendo citar.

Abraços

p.s. ao postar vi que o colega rvmprogramador já havia citado a correção, mas ficam as "advertências" aqui

Link para o comentário
Compartilhar em outros sites

  • 0
Que me desculpe o nosso amigo Eder que tentou lhe ajudar, mas o código dele dá vários erros de compilação.

R. Opa..me desculpe eu me atrapalhei no final do codigo.....não havia notado que o total era a variavel..na hora achei que era uma string ou seja que era um EDIT.....perdão...foi mal.

E quanto aos edit´s com o mesmo nome da variavel..concordo com nosso colega.

Abraço

:(

Link para o comentário
Compartilhar em outros sites

  • 0

Troquei o codigo, mas continuo não conseguindo somar, Micheus estou tentando somar 4 edits, mas não sei se o codigo esta errado.Pessoal modifiquei os codigos mas continua dando erro, vou colocar o codigo e depois os nomes dos edits que estou usando para facilitar e o erro que esta dando:

cota:real;

juros:real;

multa:real;

extra:real;

total:real;

begin

cota:=strtofloat(edtcota.text);

juros:=strtofloat(edtjuros.text);

multa:=strtofloat(edtmulta.text);

extra:=strtofloat(edtextra.text);

total:= cota + juros + multa + extra;

edttotal := FloatToStr(cota + juros + multa + extra);

end;

NOME DOS EDITS

cota --> edtcota

juros ---> edtjuros

multa---->edtmulta

extra--->edtextra

total---->edttotal

ERROS

[Error] Unit3.pas(146): Incompatible types: 'TEdit' and 'String'

[Fatal Error] Project1.dpr(7): Could not compile used unit 'Unit3.pas'

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    edtcota: TEdit;
    edtjuros: TEdit;
    edtmulta: TEdit;
    edtextra: TEdit;
    edttotal: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  cota, juros, multa, extra, total,edttotal:real;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
   cota:=strtofloat(edtcota.text);

   juros:=strtofloat(edtjuros.text);

   multa:=strtofloat(edtmulta.text);

   extra:=strtofloat(edtextra.text);

   total:= cota + juros + multa + extra;

   edttotal.Text := FloatToStr(cota + juros + multa + extra);
end;

end.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --

Da pra fazer do jeito que voce quer se voce usar um componente do RX LIB chamado CurrencyEdit1, neste componente já tem o simbolo R$ na frente do numero e asume (0.00) zero como padrão.

Instale os components RX para o Delphi que voce esta usando

procure nestes enderecos, faça o download e instale

http://www.torry.net/pages.php?id=329

http://sourceforge.net/project/showfiles.php?group_id=40944

ai o codigo vai ficar desse jeito:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask, ToolEdit, CurrEdit;

type
  TForm1 = class(TForm)
    CurrencyEdit1: TCurrencyEdit;
    CurrencyEdit2: TCurrencyEdit;
    CurrencyEdit3: TCurrencyEdit;
    CurrencyEdit4: TCurrencyEdit;
    CurrencyEdit5: TCurrencyEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  cota, juros, multa, extra, total :real;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
   cota:= CurrencyEdit1.Value;

   juros:= CurrencyEdit2.Value;

   multa:= CurrencyEdit3.Value;

   extra:= CurrencyEdit4.Value;

   total:= cota + juros + multa + extra;

   CurrencyEdit5.Value := total;
end;

end.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --
Ola baixei e instalei, mas não consegui fazer funcionar,ae desisti e estou iniciando em zero mesmo. MAs mesmo assim OBRIGADO!!!!!!!!

Colega... se voce realmente instalou vai aparecer tres abas dos componentes do RX, o RX Controls, o RX Tools e o RX DBAware, o componente CurrencyEdit e o sexto da lista da aba RX Controls... se voce não estiver visualizando essas abas e porque voce não instalou corretamente. E te garanto que é mais pratico, mas se quer do jeito mais dificil então faça:

procedure TForm1.Button1Click(Sender: TObject);
begin
   cota:=strtofloat(edtcota.text);

   juros:=strtofloat(edtjuros.text);

   multa:=strtofloat(edtmulta.text);

   extra:=strtofloat(edtextra.text);

   total:= cota + juros + multa + extra;

   edttotal.Text := 'R$ ' + FloatToStr(cota) +   ' + R$ ' + FloatToStr(juros) + ' + R$ ' + FloatToStr(multa) + ' + R$ ' + FloatToStr(extra) + ' = ' + 'R$ ' + FloatToStr(total);
end;

Link para o comentário
Compartilhar em outros sites

  • 0

tenta no final assim:

edttotal.Text := 'R$ ' + FloatToStr(cota+juros+multa+extra+total);
somei todas as suas variaveis..se você ver que tem alguma que não deveria somar...retire agora se você quizer somente somar todas menos as total....então faça assim:
edttotal.Text := 'R$ ' + FloatToStr(cota+juros+multa+extra);
se você quizer mostrar somente a total..pois ela já estava somando as outras então faça assim:
edttotal.Text := 'R$ ' + FloatToStr(total);

bom espero que um dos casos acima..seja o que você quer

valeu.. :D

Editado por Eder
Link para o comentário
Compartilhar em outros sites

  • 0
Da pra fazer do jeito que voce quer se voce usar um componente do RX LIB chamado CurrencyEdit1, neste componente já tem o simbolo R$ na frente do numero e asume (0.00) zero como padrão.

Instale os components RX para o Delphi que voce esta usando

procure nestes enderecos, faça o download e instale

http://www.torry.net/pages.php?id=329

http://sourceforge.net/project/showfiles.php?group_id=40944

ai o codigo vai ficar desse jeito:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask, ToolEdit, CurrEdit;

type
  TForm1 = class(TForm)
    CurrencyEdit1: TCurrencyEdit;
    CurrencyEdit2: TCurrencyEdit;
    CurrencyEdit3: TCurrencyEdit;
    CurrencyEdit4: TCurrencyEdit;
    CurrencyEdit5: TCurrencyEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  cota, juros, multa, extra, total :real;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
   cota:= CurrencyEdit1.Value;

   juros:= CurrencyEdit2.Value;

   multa:= CurrencyEdit3.Value;

   extra:= CurrencyEdit4.Value;

   total:= cota + juros + multa + extra;

   CurrencyEdit5.Value := total;
end;

end.

Bom dia amigo,

a solução para fazer este calculo.

vou colocar aqui, espero te ajudado.

procedure TForm1.Button1Click(Sender: TObject);

var

cota:real;

juros:real;

multa:real;

extra:real;

total:real;

begin

cota:=strtofloat(Edit1.text);

juros:=strtofloat(Edit2.text);

multa:=strtofloat(Edit3.text);

extra:=strtofloat(Edit4.text);

total:= (cota + juros + multa + extra);

Label5.Caption := FormatFloat('###,##0.00',total);

end;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...