Assim funciona.

procedure TForm1.TesteKeyPress(Sender: TObject; var Key: Char);
begin

   if (not (Key in ['0'..'9', DecimalSeparator, #8, #9, #13])) or
      ((not (Key in [#8, #9, #13])) and (Pos(DecimalSeparator, (Sender 
as TEdit).Text) > 0) and
       ((Pos(DecimalSeparator, (Sender as TEdit).Text) + 1) < 
Length((Sender as TEdit).Text))) or
      ((Key = DecimalSeparator) and (Pos(DecimalSeparator, (Sender as 
TEdit).Text) > 0)) then
      Key := #0;

end;


Eduardo

ca_programador007 escreveu:
>
> Olá caros amigos
>
> Tô quebrando a cabeça com um tratamento no campo de valor...
> utilizando o codigo abaixo no evento onexit do edit, ele não trata os 
> centavos, e nem quando os valores são grandes..... se não trata quando 
> o usuário digita ,,,,, (varias virgulas)
> gostaria que desse uma mensagem quando o usuario digita varias 
> virgular sem querer.......
> e os centavos que não estao corretos..
> alguem tem alguma funcao mais adequada para isso?
> ps: o campo valor no banco é do tipo numeric 15,2
> desculpem a ignorancia
>
> begin
> try
> edit1.text:=formatfloat('###,###,##0.00',strtofloat(edit1.text));
> except
> showmessage('Este Valor é Inválido!');
> end;
>
> Carlinhos_007
>
> __________________________________________________
> Fale com seus amigos de graça com o novo Yahoo! Messenger
> http://br.messenger.yahoo.com/ <http://br.messenger.yahoo.com/>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  


                
_______________________________________________________ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo.com/mailbeta/tudonovo/
 

Responder a