EDIT aceitar somente números

09/03/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 !


Cabal

Respostas

09/03/2006

Ermindo

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


Responder Citar

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 Citar

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 Citar

09/03/2006

Marco Salles

simples

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


o decimal separador depende das configuraçoes regionais


Responder Citar

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 Citar

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&93;)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 Citar

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 Citar

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 Citar