Fórum MaskEdit quando todo preenchido focar outro campo automatico #345754
10/09/2007
0
No caso do MaskEdit preenchido teria como dar um SetFocus para o campo seguinte?
Jpauloss
Curtir tópico
+ 0Posts
10/09/2007
Dbergkamps10
tente assim:
Edit1.MaxLength:=10; if Edit1.GetTextLen=10 then Perform(WM_NEXTDLGCTL,0,0);
espero ter ajudado
Gostei + 0
10/09/2007
Jpauloss
Edit1.MaxLength:=10; if Edit1.GetTextLen=10 then Perform(WM_NEXTDLGCTL,0,0);
Em que evento coloco esse código?
Gostei + 0
10/09/2007
Jpauloss
Edit1.MaxLength:=10; if Edit1.GetTextLen=10 then Perform(WM_NEXTDLGCTL,0,0);
Em que evento coloco esse código?[/quote:e9e249284c]
Coloquei assim:
cod.MaxLength:=9; if cod.GetTextLen=9 then descricao.SetFocus;
Mas quando digito o primeiro número ele já pula para o edit ´descricao´.
Que faço?
Gostei + 0
10/09/2007
Martins
Edit1.MaxLength:=10; if Edit1.GetTextLen=10 then Perform(WM_NEXTDLGCTL,0,0);
Em que evento coloco esse código?[/quote:df1629aa52]
Coloquei assim:
cod.MaxLength:=9; if cod.GetTextLen=9 then descricao.SetFocus;
Mas quando digito o primeiro número ele já pula para o edit ´descricao´.
Que faço?[/quote:df1629aa52]
Você colocou esse código em qual evento? No Onchange?
Acho q vc deve fazer a verificação no evento OnChange do componente OK!
Bons códigos.
Gostei + 0
10/09/2007
Jpauloss
Edit1.MaxLength:=10; if Edit1.GetTextLen=10 then Perform(WM_NEXTDLGCTL,0,0);
Em que evento coloco esse código?[/quote:3b89ff1ed8]
Coloquei assim:
cod.MaxLength:=9; if cod.GetTextLen=9 then descricao.SetFocus;
Mas quando digito o primeiro número ele já pula para o edit ´descricao´.
Que faço?[/quote:3b89ff1ed8]
Você colocou esse código em qual evento? No Onchange?
Acho q vc deve fazer a verificação no evento OnChange do componente OK!
Bons códigos.[/quote:3b89ff1ed8]
Coloquei no OnChange mesmo e deu esse problema. Está pulando quando digito o primeiro ele já pula pra o edit seguinte.
Gostei + 0
10/09/2007
Jpauloss
Vocês tem alguma ideia?
A máscara ta assim: 9.9.9.9.9
No primeiro número que é digitado já pula para o outro edit.
Gostei + 0
10/09/2007
Dbergkamps10
coloque o lenght do edit contando com os pontos da mascara. Se for:
9.9.9.9.9, não coloque 5 e sim 9.
captou?
espero ter ajudado.
Gostei + 0
11/09/2007
Jpauloss
Já fia o teste com 5 e com 9, da no mesmo.
Gostei + 0
11/09/2007
Martins
Já fia o teste com 5 e com 9, da no mesmo.[/quote:f90b45dc63]
Do jeito q está não vai funcionar mesmo, verifiquei e veja q o tamanho dessa mascara será sempre 9, mesmo q vc não a preencha ela terá esse tamanho os caracteres digitados são colocados no lugar do _.
Faça um teste.
ShowMessage( IntToStr( MaskEdit1.GetTextLen ) );
Acho q vc deve procurar uma outra maneira de fazer isso.
Gostei + 0
11/09/2007
Crskuca
Eu uso uma funcao para todas as mascaras.
function MontaMascara(aux:string; Tipo:Integer ):string;
begin
case tipo of
1:begin //monta a mascara de telefone (00)8888-9999
case length(AUX) of
1:AUX:=´(´+AUX;
3:AUX:=aux+´)´;
8:AUX:=aux+´-´;
end;
end;
2:begin // monta a mascara do CPF 999.999.999-99
case length(AUX) of
3:AUX:=AUX+´.´;
7:AUX:=aux+´.´;
11:AUX:=aux+´-´;
end;
end;
3:begin // monta a mascara do CGC 00.999.999/9999-99
case length(AUX) of
2:AUX:=AUX+´.´;
6:AUX:=aux+´.´;
10:AUX:=aux+´/´;
15:AUX:=aux+´-´;
end;
end;
4:begin // monta a mascara do CEP 04412-090
case length(AUX) of
5:AUX:=AUX+´-´;
end;
END;
END;
RESULT:=AUX;
END;
procedure TfrmCliente.ClienteCgcCpfChange(Sender: TObject);
begin
if drgPessoa.ItemIndex = 0 then
begin
TDBEDIT(SENDER).Text:=MontaMascara(TDBEdit(SENDER).Text,2); //monta a mascara
TDBEdit(Sender).SelStart := MaxInt; // RETORNA O CURSOR NO LUGAR CERTO
TDBEdit(SENDER).MaxLength:=14; //tamanho maximo do campo
if TDBEdit(SENDER).GetTextLen=14 then Perform(WM_NEXTDLGCTL,0,0);
end
else
begin
TDBEDIT(SENDER).Text:=MontaMascara(TDBEdit(SENDER).Text,3); //monta a mascara
TDBEdit(Sender).SelStart := MaxInt; // RETORNA O CURSOR NO LUGAR CERTO
TDBEdit(SENDER).MaxLength:=18; //tamanho maximo do campo
if TDBEdit(SENDER).GetTextLen=18 then Perform(WM_NEXTDLGCTL,0,0);
end;
end;
Gostei + 0
13/09/2007
Martins
Valew!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)