Fórum erro is not a valid floating point value - ao clickar edtData #402879
11/06/2011
0
Shift: TShiftState);
var a,b, soma:double;
begin
if key=vk_return then SelectNext(ActiveControl, true,true);
a:=StrToFloat(edtTotal1.Text);
b:=StrToFloat(edtTotal.Text);
soma:=(a-b);
edtsaldo.Text:=FormatFloat('R$ ##,##0.00',soma); end;
Lauro
Curtir tópico
+ 0Posts
13/06/2011
Eliel Martins
O problema que está ocorrendo é porque você colocou no evento OnKeyDown, bom o problema em sí nem é por causa do evento e sim quando você tenta converte uma string para float, e nesse momento o componente está sem preencher, então o que pode ser feito é colocar um verificação para ver se ele está vazio, se tiver vazio não fazer a conversão, segue abaixo o exemplo de como corrigir isso :
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
a,
b,
soma :Double;
begin
Soma := 0;
if key=vk_return then
SelectNext(ActiveControl, true,true);
if Trim(edtTotal1.Text) <> '' then
a:=StrToFloat(edtTotal1.Text);
if Trim(edtTotal.Text) <> '' then
b:=StrToFloat(edtTotal.Text);
soma := (a-b);
edtsaldo.Text:=FormatFloat('R$ ##,##0.00',soma);
end;
Basicamente é isso que está ocorrendo o erro, agora você está utilizando um edit para fazer calculo, deve fazer algumas validações para somente permitir o usuário a digitar número e não letras, porque o usuário digitar uma letra e no momento de converte de string para float vai dar outro erro.
Espero ter ajudado.
Eliel G. Martins
Gostei + 0
13/06/2011
Lauro
Gostei + 0
27/06/2011
Lauro
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)