Fórum Como faz pra forçar usuário digitar 5 dígitos num edit? #345799
11/09/2007
0
Jpauloss
Curtir tópico
+ 0Posts
11/09/2007
Adriano Santos
if Length(Edit1.Text) < 5 then
begin
ShowMessage(´Digite ao menos 5 digitos.´);
Edit1.SetFocus;
end;
Gostei + 0
11/09/2007
Jpauloss
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
11/09/2007
Luciano Paranhos
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
11/09/2007
Jpauloss
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
11/09/2007
Fabiano Góes
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
12/09/2007
Adriano Santos
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
12/09/2007
Martins
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
12/09/2007
Jpauloss
Gostei + 0
13/09/2007
Martins
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
13/09/2007
Jpauloss
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
13/09/2007
Martins
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
Clique aqui para fazer login e interagir na Comunidade :)