DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

Como colocar máscaras aos fields sem adicioná-los?

Oi gente, tudo bem com vocês?

Você já se deparou com o problema de precisar colocar uma máscara em algum
campo de um Dataset, mas também não queria adicionar ele pelo field editor?

Veja como é simples a adição de máscaras por em tempo de execução:

É necessário estar declarado DB na seção uses,
em versões unicode declare Data.DB.

Em Lazarus declare DB.

Exemplo:

1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Campos Numéricos
  TNumericField(QryTeste.FieldByName('VALOR')).DisplayFormat :=
  '###,###,##0.00';
 
  // Campos Texto
  TStringField(QryTeste.FieldByName('CNPJ')).EditMask :=
  '00\.000\.000\/0000\-00;0;_';
end;

O segredo aqui foi o uso do Type Cast, para acessar a propriedade e
passar o valor da máscara.

Uma estratégia interessante é colocar estes comandos no AfterOpen da sua Query ou Dataset.
Veja o exemplo:

1
2
3
4
5
6
7
8
9
10
procedure TForm1.QryTesteAfterOpen(DataSet: TDataSet);
begin
  // Campos Numéricos
  TNumericField(DataSet.FieldByName('VALOR')).DisplayFormat :=
  '###,###,##0.00';
 
  // Campos Texto
  TStringField(DataSet.FieldByName('CNPJ')).EditMask :=
  '00\.000\.000\/0000\-00;0;_';
end;

Só lembrando que o código acima também é válido para Lazarus.

Certo pessoal, espero que tenham gostado.

Dúvidas ou sugestões, deixe nos comentários do post.

Um abraço e até a próxima. Valeu.

Facebook Comments Box
  • Giovani Da Cruz
  • 12.730 views
  • 5 comentários
  • 21 de maio de 2015

Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!

5 respostas para “Como colocar máscaras aos fields sem adicioná-los?”

  1. Marcos disse:

    Mas num formulário que traz os registro do banco de dados automaticamente, como disparar essa procedure?

  2. Marcos disse:

    A máscara para campo de Texto só funciona para a entrada de dados, para exibí-los não funciona… estou usando o lazarus.

    O objetivo seria que ao receber os dados (do tipo varchar) vindos do banco de dados fosse aplicada a máscara para CNPJ.

  3. Eugenio disse:

    Bom dia. Tenho um cenário onde preciso aplicar a máscara no dbgrid. O CDS e fields tudo em tempo de execução. Como implementar este mascaramento em tempo de execução (runtime) ? Obrigado
    Eugenio

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados