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/