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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar