EDIT aceitar somente números
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 !
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
Curtidas 1
Melhor post
Ermindo
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
if not (key in [´1´,´2´,´3´,´4´,´5´,´6´,´7´,´8´,´9´,´0´,´,´]) then
key :=#0;
ATT
Ermindo
GOSTEI 1
Mais Respostas
Techsoft
09/03/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.
Se tiver dificuldades em encontrar manda um mail q envio o componente pra ti.
GOSTEI 0
Paullsoftware
09/03/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:
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:
GOSTEI 0
Marco Salles
09/03/2006
simples
o decimal separador depende das configuraçoes regionais
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
GOSTEI 0
Aroldo Zanela
09/03/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.
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.
GOSTEI 0
Marco Salles
09/03/2006
Acho que todo mundo entro de gaiato nessa..
Olha so o titulo da pergunta :
olha so o conteudo do tópico:
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 :
acrescente isso no evento onexit do edit1
e siga os conselhos do professor Aroldo Zanela e crie o seu primeiro component
boa sorte..
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..
GOSTEI 0
Ricobv
09/03/2006
Nenhuma dessas trata o código quando o usuário ´COLA´ algum texto no edit. Existe algum jeito de evitar isso?
GOSTEI 0
Marco Salles
09/03/2006
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 ???
GOSTEI 0
Daniel Dias
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
if not (key in [´1´,´2´,´3´,´4´,´5´,´6´,´7´,´8´,´9´,´0´,´,´]) then
key :=#0;
ATT
Ermindo
Perfeito
GOSTEI 0
Anderson Gonçalves
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 !
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.
GOSTEI 0
Anderson Gonçalves
09/03/2006
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.
Se precisar de ajuda me chama.
Skype: anderson@case13.com.br
Espero ter ajudado.
GOSTEI 0