Se me permite duas observações.
1) use if not (Key in ['0'..'9', #8, #9, #13, DecimalSeparator, '-']) then
2) DecimalSeparator por que se o usuario estiver usando ',' ou '.' vai 
funcionar.

Eduardo

Alcistemas Informática escreveu:
>
> kra, fiz uma funçãozinho acho que pode te ajudar,
>
> no onkeypress do seu edit use:
>
> key:=valida_monetario(key, editValorVenda1);
>
> a refeida função
> ----------------------------------------------------------
>
> Function Valida_Monetario(key:char; edit:tedit):char;
> var
> i:integer;
>
> begin
>
> if (Key = #46) then
> Key := #44;
>
> if (key <> '1') and (key <> '2') and (key <> '3') and (key <> '4') and 
> (key <> '5') and (key <> '6')
> and (key <> '7') and (key <> '8') and (key <> '9') and (key <> '0')
> and (key <> ',') and (key <> '+') and (key <> '-') and (key <> #8)
> then
> key:=#0;
>
> {nao permite digar duas virgulas}
> if key=#44 then
> begin
> for i:=0 to length(edit.Text) do
> begin
> if copy(edit.text,i,1)=',' then
> key := #0;
> end;
> end;
>
> result:=key;
>
> end;
>
> ----- Original Message -----
> From: ca_programador007
> To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>
> Sent: Tuesday, March 20, 2007 4:25 PM
> Subject: [delphi-br] quebrando a cabeça com campo valor
>
> 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]
>
> [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