Fórum Mover-se ao Próximo Campo PARA TODA a aplicação #337848
14/02/2007
0
Alô galera...
Gostaria de saber se há possibilidades de minha aplicação mover o foco automaticamente ao próximo controle após completar o valor do MAXLENGTH definido para cada campo.
Sei que usando o evento ONCHANGE eu consigo isso... mas vamos considerar um formulário com mais de 40 edits... ia ficar meio chatinho declarar um por um no evento ONCHANGE. :lol:
O codigo abaixo é o que eu usaria no ONCHANGE, tem jeito de fazer isso ser declarado uma vez só, como se faz para usar o ENTER no lugar do TAB?
[b:dfd8a02079]if length(TEdit(sender).text) >= TEdit(sender).MaxLength Then
Perform(Wm_NextDlgCtl, 0, 0); [/b:dfd8a02079]
Valeu a quem puder dar uma dica. :D
Gostaria de saber se há possibilidades de minha aplicação mover o foco automaticamente ao próximo controle após completar o valor do MAXLENGTH definido para cada campo.
Sei que usando o evento ONCHANGE eu consigo isso... mas vamos considerar um formulário com mais de 40 edits... ia ficar meio chatinho declarar um por um no evento ONCHANGE. :lol:
O codigo abaixo é o que eu usaria no ONCHANGE, tem jeito de fazer isso ser declarado uma vez só, como se faz para usar o ENTER no lugar do TAB?
[b:dfd8a02079]if length(TEdit(sender).text) >= TEdit(sender).MaxLength Then
Perform(Wm_NextDlgCtl, 0, 0); [/b:dfd8a02079]
Valeu a quem puder dar uma dica. :D
Microbios
Curtir tópico
+ 0
Responder
Posts
14/02/2007
M@gnun
cria uma procedure com sender:
No OnCreate do Form faça:
Edit1.OnChange := Muda_Campo;
Edit2.OnChange := Muda_Campo;
Edit3.OnChange := Muda_Campo;
.....
Edit40.OnChange := Muda_Campo;
procedure Muda_Campo(Sender: TObject); begin if length(TEdit(sender).text) >= TEdit(sender).MaxLength Then Perform(Wm_NextDlgCtl, 0, 0); end;
No OnCreate do Form faça:
Edit1.OnChange := Muda_Campo;
Edit2.OnChange := Muda_Campo;
Edit3.OnChange := Muda_Campo;
.....
Edit40.OnChange := Muda_Campo;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)