EDIT aceitar somente números

09/03/2006

0

Como faço para um edit só aceitar nºs no formato
1.000,00 ? 0,53 ? 1,63 ?? Neste padrão para moeda. Tentei usar o format, mas ñ consegui. Queria já por uma máscara no formato 0,00 qdo digitarem os nºs já vão se enquadrando na máscara. No Maskedit os nºs são postos da esquerda para a direita e isso dificulta a digitação.

valeu galera !


Cabal

Cabal

Responder

Post mais votado

09/03/2006

vc pode colocar no on key press

if not (key in [´1´,´2´,´3´,´4´,´5´,´6´,´7´,´8´,´9´,´0´,´,´]) then
key :=#0;


ATT

Ermindo


Ermindo

Ermindo
Responder

Mais Posts

09/03/2006

Techsoft

Existe um componente da TCF que é freeware chamado NumEdit, não sei se ainda existe por ai para download, eu tenho ele desde o Delphi 5, precisei fazer uma ou outra alteração para funcionar no D7, mas uso ele perfeitamente.

Se tiver dificuldades em encontrar manda um mail q envio o componente pra ti.


Responder

09/03/2006

Paullsoftware

Tente o código abaixo e vai funcionar perfeitamente...

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
´a´..´z´:
Key:=#0;
´A´..´Z´:
Key:=0;
´/´:
Key:=0;
end;
end;

Espero ter ajudado, agora se vc desejar proibir também outras teclas acrescente ela na lista.. :lol: :wink:


Responder

09/03/2006

Marco Salles

simples

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [´0´..´9´,8])and(key <> DecimalSeparator) Then
 key:=0;
end;


o decimal separador depende das configuraçoes regionais


Responder

09/03/2006

Aroldo Zanela

Colega,

Você pode criar um componente descendente de TEdit (ou TDBEdit) e adicionar esta característica nele ou utilizar um componente de terceiro, como: (Jedi VCL ou RxLib). Desta forma, vai evitar ficar escrevendo aqui e ali. Dependendo da necessidade, pode reduzir um grande esforço desnecessário.


Responder

09/03/2006

Marco Salles

Acho que todo mundo entro de gaiato nessa..

Olha so o titulo da pergunta :
Enviada: Qui Mar 09, 2006 11:07 am [b:b09619afdb]Assunto: EDIT aceitar somente números[/b:b09619afdb]


olha so o conteudo do tópico:

[b:b09619afdb]Como faço para um edit só aceitar nºs no formato 1.000,00 ? 0,53 ? 1,63 ??[/b:b09619afdb]


de cara , <com exceção aqueles que indicaram componentes de terceiros> , respondemos sobre o titulo , isto é , para não receber numeros e esquecemos completamente a formatação..

amigo eu sinceramente acho que a formatção , voce deve deixar para a saida do edit1.tex.. Evitar que esse so aceite numeros e o decimalseparator ja é um bom começo

Alem de :

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); 
begin 
if not (key in [´0´..´9´,8])and(key <> DecimalSeparator) Then 
 key:=#0; 
end;


acrescente isso no evento onexit do edit1

procedure TForm1.Edit1Exit(Sender: TObject);
begin
try
  if edit1.Text <> ´´ then
    edit1.Text:=FormatFloat(´.00´,strtofloat(edit1.Text));
except
  on econverterror do
     begin
       showmessage(´numero invalido´);
       edit1.SetFocus;
     end;
end;
end;


e siga os conselhos do professor Aroldo Zanela e crie o seu primeiro component

boa sorte..


Responder

05/04/2006

Ricobv

Nenhuma dessas trata o código quando o usuário ´COLA´ algum texto no edit. Existe algum jeito de evitar isso?


Responder

05/04/2006

Marco Salles

Nenhuma dessas trata o código quando o usuário ´COLA´ algum texto no edit. Existe algum jeito de evitar isso?


No meu trava... Tem certeza disso ???? Com ovoce esta usando para colar ??? [b:bc65484fdd]CNTRL+V[/b:bc65484fdd] seria isso ???


Responder

02/02/2020

Daniel Dias

vc pode colocar no on key press

if not (key in [´1´,´2´,´3´,´4´,´5´,´6´,´7´,´8´,´9´,´0´,´,´]) then
key :=#0;


ATT

Ermindo




Perfeito
Responder

03/02/2020

Anderson Gonçalves

Como faço para um edit só aceitar nºs no formato
1.000,00 ? 0,53 ? 1,63 ?? Neste padrão para moeda. Tentei usar o format, mas ñ consegui. Queria já por uma máscara no formato 0,00 qdo digitarem os nºs já vão se enquadrando na máscara. No Maskedit os nºs são postos da esquerda para a direita e isso dificulta a digitação.

valeu galera !




Fala boy,

Se você tem um campo que só pode usar NÚMEROS você pode usar o componente do Delphi MASKEDIT e definir uma máscara numérica para ele na propriedade EDITMASK lá você vai ver vários modelos.

Coloca assim a máscara

99999;0;_ sendo que se quiser mais dígitos você pode acrescentar mais "9" a máscara que vai abrir mais dígitos no componente.

Espero ter ajudado.
Responder

03/02/2020

Anderson Gonçalves

Você pode também querer componentes pré-programados RXLIB lá tem o CurrencyEdit que tem a formatação monetária R$ 1.060,24 exatamente como você deseja, desculpa a primeira resposta mas vi o formato que você deseja agora, mas tem como formatar um edit no código, tem várias soluções.

Se precisar de ajuda me chama.

Skype: anderson@case13.com.br

Espero ter ajudado.

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar