Array
(
)

EDIT aceitar somente números

Cabal
   - 09 mar 2006

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 !


Ermindo
   - 09 mar 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


Techsoft
   - 09 mar 2006

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.


Paullsoftware
   - 09 mar 2006

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:


Marco Salles
   - 09 mar 2006

simples

#Código

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


Aroldo Zanela
   - 09 mar 2006

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.


Marco Salles
   - 09 mar 2006

Acho que todo mundo entro de gaiato nessa..

Olha so o titulo da pergunta :

Citação:
Enviada: Qui Mar 09, 2006 11:07 am Assunto: EDIT aceitar somente números


olha so o conteudo do tópico:


Citação:
Como faço para um edit só aceitar nºs no formato
1.000,00 ? 0,53 ? 1,63 ??


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 :

#Código

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

#Código
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..


Ricobv
   - 05 abr 2006

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


Marco Salles
   - 05 abr 2006


Citação:
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 ??? CNTRL+V seria isso ???