Como faz pra forçar usuário digitar 5 dígitos num edit?
Como faço para forçar o usuario ter que digitar 5 digitos num edit?
Jpauloss
Curtidas 0
Respostas
Adriano Santos
11/09/2007
No evento onExit coloque
if Length(Edit1.Text) < 5 then
begin
ShowMessage(´Digite ao menos 5 digitos.´);
Edit1.SetFocus;
end;
if Length(Edit1.Text) < 5 then
begin
ShowMessage(´Digite ao menos 5 digitos.´);
Edit1.SetFocus;
end;
GOSTEI 0
Jpauloss
11/09/2007
[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;
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?
GOSTEI 0
Luciano Paranhos
11/09/2007
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.
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.
GOSTEI 0
Jpauloss
11/09/2007
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;
GOSTEI 0
Fabiano Góes
11/09/2007
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.
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.
GOSTEI 0
Adriano Santos
11/09/2007
[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:
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.
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.
GOSTEI 0
Martins
11/09/2007
você pode colocar a regra de validação nesse seu caso no OnEnter do próximo componente a receber o foco.
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!
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!
GOSTEI 0
Jpauloss
11/09/2007
Problema resolvido. Obrigado a todos!
GOSTEI 0
Martins
11/09/2007
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!!!!
GOSTEI 0
Jpauloss
11/09/2007
[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í!
GOSTEI 0
Martins
11/09/2007
[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.
GOSTEI 0