GARANTIR DESCONTO

Fórum Como faz pra forçar usuário digitar 5 dígitos num edit? #345799

11/09/2007

0

Como faço para forçar o usuario ter que digitar 5 digitos num edit?


Jpauloss

Jpauloss

Responder

Posts

11/09/2007

Adriano Santos

No evento onExit coloque

if Length(Edit1.Text) < 5 then
begin
ShowMessage(´Digite ao menos 5 digitos.´);
Edit1.SetFocus;
end;


Responder

Gostei + 0

11/09/2007

Jpauloss

[quote:7b5b910e5f=´Adriano Santos´]No evento onExit coloque

if Length(Edit1.Text) < 5 then
begin
ShowMessage(´Digite ao menos 5 digitos.´);
Edit1.SetFocus;
end;[/quote:7b5b910e5f]
Há outro evento sem ser no onExit que possa colocar?
Meu código ta assim no evento onExit:[/code] Begin
if Length(cod_projeto.text) < 5 then
Begin
cod_projeto.SetFocus;
end;
end;

Resultado, se não digitar os 5 dígitos não vai para lçugar nenhum, nem pode fechar a tela.
Que faço?



Responder

Gostei + 0

11/09/2007

Luciano Paranhos

Ola.

Muito cuidado com este codigo. Dependendo da situação, se a pessoa nao quiser digitar neste campo primeiro, se ela tentar sair vai deixar a pessoa irritada.

Eu ja usei muitos sistemas que fizem isso e que na verdade é uma dor de cabeça.

Se for cadastro de algo, deixa pra fazer a validação quando a pessoa clicar em Ok ou Salvar por exemplo.


Responder

Gostei + 0

11/09/2007

Jpauloss

Ola. Muito cuidado com este codigo. Dependendo da situação, se a pessoa nao quiser digitar neste campo primeiro, se ela tentar sair vai deixar a pessoa irritada. Eu ja usei muitos sistemas que fizem isso e que na verdade é uma dor de cabeça. Se for cadastro de algo, deixa pra fazer a validação quando a pessoa clicar em Ok ou Salvar por exemplo.


Mas aí que ta o problema o cliente quer desse jeito. Entende?
Mas do jeito que fiz o cursor fica travado, num da nem pra fechar o form. Que situação!
Alguem com mais uma ideia?

Vai aí o código certinho:
    Begin
    if Length(cod_projeto.text) < 5 then
    Begin
    cod_projeto.SetFocus;
    end;
    end;



Responder

Gostei + 0

11/09/2007

Fabiano Góes

olá,
como o amigo [b:c680dadb1e]drlupa[/b:c680dadb1e] falou tambem acho melhor validar no final quando for gravar as imformações, eu tambem já tive dores de cabeça por esse tipo de validação.

com todo respeito a dica do amigo [b:c680dadb1e]Adriano[/b:c680dadb1e] que sempre está dando um help.


Responder

Gostei + 0

12/09/2007

Adriano Santos

[quote:b4dd755f2e=´Fabiano Góes´]olá,
como o amigo [b:b4dd755f2e]drlupa[/b:b4dd755f2e] falou tambem acho melhor validar no final quando for gravar as imformações, eu tambem já tive dores de cabeça por esse tipo de validação.

com todo respeito a dica do amigo [b:b4dd755f2e]Adriano[/b:b4dd755f2e] que sempre está dando um help.[/quote:b4dd755f2e]
Sem crise Fabiano. O que pode ser feito, caso você realmente queira que seja feita a validação na saída do Edit e não validar ao sair do form é detectar qual o componente está recebendo o foco e caso seja um botão cancelar por exemplo, você não valida assim:

if (Length(Edit1.Text) < 5) and (not (ActiveControl = btnCancelar)) then
  Edit1.SetFocus;


Isso pode ser feito no onExit do edit. Há casos e há casos. Tenho operações na empresa que é necessário fazer a checagem no Exit do componente, pois o componente posterior precisa de alguma informação do edit anterior. Então em resumo é interessante você analisar exatamente o que precisa ser feito de validação. Se for o caso use Contraints no campo do banco de dados diretamete no Fields Editor.


Responder

Gostei + 0

12/09/2007

Martins

você pode colocar a regra de validação nesse seu caso no OnEnter do próximo componente a receber o foco.

procedure TForm1.Edit2Enter(Sender: TObject);
begin
 if length(Edit1.Text) < 5 then
 begin
    ShowMessage(´você digitar pelo menos 5 caracteres...´);
    Edit1.SetFocus;
 end;


Só uma sugestão, desse jeito vc válida e tem completo dominio sobre sua aplicação, pode sair do programa, sem crise como disse o mano [b:86fc2fd281]Adriano[/b:86fc2fd281]. Todas as dicas repassadas pelos colegas são de utilidade, todos buscando uma solução para essa situação.

valew pessoal!


Responder

Gostei + 0

12/09/2007

Jpauloss

Problema resolvido. Obrigado a todos!


Responder

Gostei + 0

13/09/2007

Martins

Problema resolvido. Obrigado a todos!


Sem querer ser chato, vc poderia postar a resolução do problema para q outros usuários possam usufruir da informação.

obrigado.

Bons Códigos!!!!


Responder

Gostei + 0

13/09/2007

Jpauloss

[quote:abf64f2053=´jpauloss´]Problema resolvido. Obrigado a todos!


Sem querer ser chato, vc poderia postar a resolução do problema para q outros usuários possam usufruir da informação.

obrigado.

Bons Códigos!!!![/quote:abf64f2053]

Claro que sim! Resolvi com a dica do Martins:
procedure TForm1.Edit2Enter(Sender: TObject);
begin
 if length(Edit1.Text) < 5 then
 begin
    ShowMessage(´você digitar pelo menos 5 caracteres...´);
    Edit1.SetFocus;
 end;


A solução foi colocar no edit seguinte no evento onEnter esse código aí em cima.
Qualquer coisa estamos aí!


Responder

Gostei + 0

13/09/2007

Martins

[quote:b3823495e4=´Martins´][quote:b3823495e4=´jpauloss´]Problema resolvido. Obrigado a todos!


Sem querer ser chato, vc poderia postar a resolução do problema para q outros usuários possam usufruir da informação.

obrigado.

Bons Códigos!!!![/quote:b3823495e4]

Claro que sim! Resolvi com a dica do Martins:
procedure TForm1.Edit2Enter(Sender: TObject);
begin
 if length(Edit1.Text) < 5 then
 begin
    ShowMessage(´você digitar pelo menos 5 caracteres...´);
    Edit1.SetFocus;
 end;


A solução foi colocar no edit seguinte no evento onEnter esse código aí em cima.
Qualquer coisa estamos aí![/quote:b3823495e4]

Blz meu camarada, só deixei o comentário pq algumas questões mesmo solucionadas ficam em aberto no fórum, o pessoal não diz se resolveu ou como resolveu, no seu caso vc voltou para informar q havia resolvido, a solução encontrada foi informada para q outros possam usufruir ou melhorar.

Boa sorte e bons códigos.


Responder

Gostei + 0

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

Aceitar