Somar campos

Delphi

05/11/2003

Colegas me embananei todo, não sei nem o que fiz, alguem pode me ajudar?

Coloquei 5 edit’s para somar valores e ter o resultado em um 6 edit
Obs1 me desculpe-me mais sou iniciante estou tentando aprender
Obs2 pode ser feito com dbedit&8217;s com os valores já determinado na tabela?

Veja como eh a lógica do meu programa

Edit2+edit4+edit5+edit6+edit7=edit8

Veja uma dica que peguei

procedure TF_pesquisa.Edit8Exit(Sender: TObject);
begin

try
edit2 := strtofloat(Trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
try
edit4 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
try
edit5 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
edit6 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
try
edit7 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
edit8 := edit2 + edit4 + edit5 + edit6 + edit7
edit8.text := floattostr(edit8);
end;
end.

Veja como eu tenho

var
ValorString: String;
begin
if dbEdit3.text = ´´ then
dbedit3.text := ´0.00´
else
begin
valorstring := CopiaDireita(dbEdit3.Text, ´ ´);
valorstring := BuscaTroca(ValorString, ´,´, ´´);

dbedit16.text:=formatfloat(´R$ #,,,00.00´,strtofloat(copy(dbedit3.text,4,length(dbedit3.text)))+strtofloat
(copy(dbedit10.text,4,length(dbedit10.text)))+strtofloat(copy(dbedit12.text,4,length(dbedit12.text)))+strtofloat
(copy(dbedit14.text,4,length(dbedit14.text)))+strtofloat(copy(dbedit18.text,4,length(dbedit18.text))));
end;

So que dessa forma a cada produto que eu seleciono se o valor for diferente ele assume a soma total com o preço do ultimo produto selecionado
Ex:

Produto1 = 3,00
Produto2 = 2,50
Produto3 = 1,50
Produto4 = 3,00
Produto5 = 2,00
Total =10,00 (ele assume o ultimo valor 2,00 para os produtos anteriores e me da o resultado de 10,00 o que estou fazendo de err


Obrigado


Wagner

Wagner

Curtidas 0

Respostas

Marcelo

Marcelo

05/11/2003

Oi,,, acho que posso te ajudar...
Veja o procedimento abaixo:

procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
try
Edit6.Text := ´0´;
for i := 0 to 5 do
if Components[i] is TEdit then
Edit6.Text := FloatToStr( StrToFloat( Edit6.Text ) + StrToFloat( TEdit( Components[i] ).Text ));
Edit6.Text := FormatFloat( ´R$ #,,,00.00´, StrToFloat( Edit6.Text ));
except
ShowMessage( ´Exite algum valor invalido...´ );
end;
end;

Ela funciona, mas para que seja possivel, os 6 primeiros objetos inseridos no form terao que ser TEdit´s .

Valeu?
at+vr...


GOSTEI 0
Wagner

Wagner

05/11/2003

Como sou iniciante, pra variar não entendi muito bem, então fiz dessa forma:

Coloquei para para cada evento onexit do meu edit coloquei sua dica, acontece que os valores ficam zerados e nao acrescenta nada na soma total o que eu estou fazendo de erradao?

var
i : Integer;
begin
try
edit2.Text := ´0´;
for i := 0 to 5 do
if Components[i] is TEdit then
Edit8.Text := FloatToStr( StrToFloat( Edit2.Text ) + StrToFloat( TEdit( Components[i] ).Text ));
Edit8.Text := FormatFloat( ´R$ #,,,0.00´, StrToFloat( Edit2.Text ));
except
ShowMessage( ´Exite algum valor invalido...´ );
end;
end;


GOSTEI 0
Wagner

Wagner

05/11/2003

Fiz dessa forma que voce explicou mais os campos estam assumindo os valores (0) zerados veja bem se voce entendeu como eu queria

dbedit1 + dbedit2 + dbedit3 + dbedit4 + dbedit5 = dbedit6

valor1 3,00 dbedit1
valor2 4,00 dbedit2
valor3 3,00 dbedit3
valor4 3,00 dbedit4
valor5 1,00 dbedit5

valor6 14,00 dbedit6

Uso paradox e o tipo de campo dos meus valores N e nao $ (sera isso que esta errado?)

Ajude-me mais uma vez por favor


GOSTEI 0
Carlos Bernardo

Carlos Bernardo

05/11/2003

Meu , não é porque vce começa a cópia a partir da 4 posição, tente usar 1 em vez de quatro.


GOSTEI 0
POSTAR