Calculos com Currency
Olá amigos!!!!!
Criei uma tela onde de fechamento de conta, que possui um dbedt que traz o valor no formato R$ 100,00. Há um edit onde digito o valor pago e um outro do saldo, que será valorconta + valorpago. O problema é que não está sendo calculado o débito, a mensagem que aparece é
´is not a valid point value.
O valor da conta está formatado da seguinte forma:
procedure TdmFechamento.cdsContasPendVLR_CTAGetText(Sender: TField;
var Text: string; DisplayText: Boolean);
begin
if not dmFechamento.cdsContasPend.IsEmpty then
if not Sender.IsNull then
Text := ´R$ ´ + FormatFloat(´#,,0.00´, Sender.Value);
end;
A minha dúvida é como extrair apenas o valor (sem o R$) para calcular o saldo?
Vejam o código que digitei e, se possível, apontem os erros.
procedure TfrmFechamento.edtValorPagoExit(Sender: TObject);
var
saldo, valorconta, valorpago : real;
begin
valorconta := strtofloat(dbedtConta.Text);
valorpago := strtofloat(edtValorPago.Text);
saldo := strtofloat(edtSaldo.Text);
Saldo := valorconta + valorpago;
edtSaldo.Text := FloatToStr(saldo);
end;
Estou trabalhando com Firebird + DBExpress
Desde já agradeço a atenção de todos.
Abraço,
Rogério
Criei uma tela onde de fechamento de conta, que possui um dbedt que traz o valor no formato R$ 100,00. Há um edit onde digito o valor pago e um outro do saldo, que será valorconta + valorpago. O problema é que não está sendo calculado o débito, a mensagem que aparece é
´is not a valid point value.
O valor da conta está formatado da seguinte forma:
procedure TdmFechamento.cdsContasPendVLR_CTAGetText(Sender: TField;
var Text: string; DisplayText: Boolean);
begin
if not dmFechamento.cdsContasPend.IsEmpty then
if not Sender.IsNull then
Text := ´R$ ´ + FormatFloat(´#,,0.00´, Sender.Value);
end;
A minha dúvida é como extrair apenas o valor (sem o R$) para calcular o saldo?
Vejam o código que digitei e, se possível, apontem os erros.
procedure TfrmFechamento.edtValorPagoExit(Sender: TObject);
var
saldo, valorconta, valorpago : real;
begin
valorconta := strtofloat(dbedtConta.Text);
valorpago := strtofloat(edtValorPago.Text);
saldo := strtofloat(edtSaldo.Text);
Saldo := valorconta + valorpago;
edtSaldo.Text := FloatToStr(saldo);
end;
Estou trabalhando com Firebird + DBExpress
Desde já agradeço a atenção de todos.
Abraço,
Rogério
Roger1976
Curtidas 0
Respostas
Roger1976
12/10/2006
Caros amigos, resolvi o meu problema.
procedure TfrmFechamento.edtValorPagoExit(Sender: TObject);
var
saldo, valorconta, valorpago : currency;
begin
valorconta := strtocurr(copy(dbedtValor.Text, 4, 9));
valorpago := strtocurr(copy(edtValorPago.Text, 4, 9));
Saldo := valorconta + valorpago;
edtSaldo.Text := ´R$´ + FormatCurr(´#,,0.00´, saldo);
end;
Não sei se é a melhor solução, se tiverem uma dica melhor, por favor postem, pois poderá ser útil para àqueles que tiverem esta dúvida.
Um ótimo feriado a todos....
procedure TfrmFechamento.edtValorPagoExit(Sender: TObject);
var
saldo, valorconta, valorpago : currency;
begin
valorconta := strtocurr(copy(dbedtValor.Text, 4, 9));
valorpago := strtocurr(copy(edtValorPago.Text, 4, 9));
Saldo := valorconta + valorpago;
edtSaldo.Text := ´R$´ + FormatCurr(´#,,0.00´, saldo);
end;
Não sei se é a melhor solução, se tiverem uma dica melhor, por favor postem, pois poderá ser útil para àqueles que tiverem esta dúvida.
Um ótimo feriado a todos....
GOSTEI 0