Ir ao conteúdo
  • Cadastre-se
LeandroSk8

Máscara automática ao digitar

Recommended Posts

Olá LeandroSk8,

Não é necessário a utilização de função....

Se estiver usando um TEdit, vá até o Object Inspector - Properties - você vai encontrar uma opção chamada PasswordChar, lá você coloca o caracter que quer que apareça ao digitar qualquer texto.

Faça um teste e poste novamente pra saber se deu certo, ok!!!!!

Abraços :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde LeandroSk8!

Você também pode usar o componente "MaskEdit(Mask)" que fica na aba "Additional". com ele você pode, por exemplo, colocar as barras automaticamente em uma data utilizando a propriedade "EditMask".

Para utilizar o MaskEdit para digitar uma data, a propriedade "EditMask" ficaria assim: 00/00/000. (Se usa o 0 aonde quer que fique o espaço para o usuario digitar).

Faça os teste e me avise se precissar de alguma coisa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Paula_Moura

Mas o que eu preciso realmente é que ao digitar fosse aparecendo pontos, traços ou virgulas. Por exemplo :

Telefone 1111111111 ficasse assim (11) 1111-1111

Mas se eu digitar o primeiro número "1" ficasse assim (1 , o segundo numero "(11" ficasse assim (11) e assim por diante.

Não sei se me expressei bem, mas agradeço qualquer ajuda.

Editado por LeandroSk8

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então LeandroSk8, peço que de uma olhada no meu post. o componente "MaskEdit(Mask)" que fica na aba "Additional", faz todo este processo pra você usando a propriedade "EditMask". Faça uns testes e me responda caso tenha duvidas!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola I.Rutkoski,

acho q você ja deve ter visto em alguns sites campos de digitacao q coloca os caracteres

automaticamente ao digitar.

o q eu gostaria é que ao digitar "1" ficasse assim "(1" e nao assim "(1_) ____-____" , ao

digitar "11" ficasse assim "(11" e nao assim "(11) ____-____", ao digitar "111" ficasse

assim "(11) 1" e nao assim "(11) 1___-____" e assim por diante.

Agradeço qualquer ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Você precisa trabalhar com o evento OnChange do TEdit (clique duplo nele), ou ainda com o OnKeyDown

Veja o código completo com o OnChange, para o que você pediu:

procedure TForm1.Edit1Change(Sender: TObject);
begin
if (Length(Edit1.Text) = 1) then
begin
if Edit1.Text[1] = '(' then
Edit1.Text := ''
else
begin
Edit1.Text := '('+Edit1.text;
Edit1.SelStart := Length(Edit1.text);
end;
end;
if Length(Edit1.Text) = 3 then
begin
Edit1.Text := Edit1.text+') ';
Edit1.SelStart := Length(Edit1.text);
end;
if Length(Edit1.Text) = 9 then
begin
Edit1.text := Edit1.text+'-';
Edit1.SelStart := Length(Edit1.Text);
end;
end;

Entretanto, como você deve perceber ao testar, se você apagar provavelmente vai bugar todo, então é por isso que essas masks enchem.. mas aí deixo para você resolver..

PS: Se você reparar ja ajeitei o problema do backspace até na primeira mascara (o '(') !

Abraços!

Editado por Mog.Lucas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo Rog.Lucas,

Consegui resolver assim:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in [#8]) then begin
if not (Key in ['0'..'9']) then Key := #0;
if (Length(Edit1.Text) = 1) then begin
if Edit1.Text[1] = '(' then Edit1.Text := '' else begin
Edit1.Text := '('+Edit1.text;
Edit1.SelStart := Length(Edit1.text);
end;
end;
if Length(Edit1.Text) = 3 then begin Edit1.Text := Edit1.text+') ';
Edit1.SelStart := Length(Edit1.text);
end;
if Length(Edit1.Text) = 9 then begin Edit1.text := Edit1.text+'-';
Edit1.SelStart := Length(Edit1.Text);
end;
end;
end;

Se puder dar uma melhorada te agradeço desde já.

valeu.

Editado por Goliathvv
Utilize a tag [code] para destacar o trecho de código e tornar o texto mais legível. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×