is not a valid floating point value. O que quer dizer?????

Delphi

04/11/2006

Tenho um campo em meu form onde no evento onexit criei um código para acrescentar zeros Ex: 0,2 ele converte para 0,20 ou 3 ele converte para 3,00. Será que o erro que está dando é referente a este código???
Eis o código:

procedure TformPedidos.fldDim1Exit(Sender: TObject);
var
realDim1:real;
begin
inherited;
realDim1:= StrToFloat(fldDim1.Text);//Acrescenta zeros no campo
fldDim1.Text:= formatfloat(´#,0.00´,realDim1);


Vitor5

Vitor5

Curtidas 0

Respostas

Mahdak

Mahdak

04/11/2006

Tenho um campo em meu form onde no evento onexit criei um código para acrescentar zeros Ex: 0,2 ele converte para 0,20 ou 3 ele converte para 3,00. Será que o erro que está dando é referente a este código??? Eis o código: procedure TformPedidos.fldDim1Exit(Sender: TObject); var realDim1:real; begin inherited; realDim1:= StrToFloat(fldDim1.Text);//Acrescenta zeros no campo fldDim1.Text:= formatfloat(´#,0.00´,realDim1);


aqui seu procedimento funcionou, verifique se voce nao está digitando algum caractere que nao seja numero ou virgula, ou mesmo mais de uma virgula. lembrando que pontos tambem nao sao válidos nesse caso. para isso te aconselho a fazer um tratamento no OnKeyPress do edit para checar essas particularidades... voce poderia fazer algo assim:

   // Apenas Numeros 
  If not( key in[´,´,´.´,´0´..´9´,8] ) then
  begin
  beep;{somente delphi 2.0 ou >}
  key:=0;
  end;

  // ponto decimal 
  if Key in [´,´,´.´] then Key := DecimalSeparator;


boa sorte


GOSTEI 0
Vitor5

Vitor5

04/11/2006

Obrigado por responder, como trabalho com medidas preciso da virgula para meus edits.
O tipo de campo está como varchar, poderia ser isto???


GOSTEI 0
Titanius

Titanius

04/11/2006

Amigo, tente mudar o DecimalSeparator

no inicio do programa

DecimalSeparator := ´,´;

Pois pro delphi, o ponto ´ . ´ é que é o separador decimal, a vígula ´ , ´ é separador de milhar...


[]s


GOSTEI 0
Vitor5

Vitor5

04/11/2006

Amigo, tente mudar o DecimalSeparator no inicio do programa DecimalSeparator := ´,´; Pois pro delphi, o ponto ´ . ´ é que é o separador decimal, a vígula ´ , ´ é separador de milhar... []s
:oops:
Como ficaria isto, pois preciso trabalhar com medidas?? Ex: 100,20 ou 10,50 ou mesmo 0,30. O campo está com varchar e preciso acrecentar zeros depois da virgula. Gostaria que ao digitasse 2,2 ele me trouxesse 2,20 e assim por diante. Obrigado


GOSTEI 0
Titanius

Titanius

04/11/2006

Vamos supor: no inicio do programa, no source do DPR:

begin
 DecimalSepartor := ´,´;

...


Lembrando de adicionar o SysUtils, na uses (acho que este mesmo).

Pois bem, pra fazer o cálculo, basta você pegar os dados assim:

TabelaCAMPO.AsFloat;

ou

Tabela.FieldByName(´CAMPO´).AsFloat;


[]s


GOSTEI 0
POSTAR