MUDAR MÁSCARA DO TFIELD DINANMICAMENTE - AJUDA

Delphi

27/09/2009

aMIGOS, TENHO UM CAMPO ONDE UTILIZO PARA cnpj E CPF, ESTOU TENTANDO COLOCAR A MASCARA DO TFIELD DINAMICAMENTE, PARA SER EXIBIDO OS DADOS CORRETAMENTE EM UM DBGRID. POREM N ESTOU CONSEGUINDO ACERTAR O EVENTO EM QUE EU POSSA FAZER ISSO.

PRECISAVA DE UMA DICA.

OBRIGADO


Ant.neto

Ant.neto

Curtidas 1

Melhor post

Afarias

Afarias

27/09/2009

Uma opção é usar o evento OnGetText do TField, ex:


const
  cpfMask = ´000.000.000\-00;0;_´;
  cnpjMask = ´00.000.000\/0000\-00;0;_´;
var
  fMask: string;
begin
  if DisplayText then // não formatar na edição
  begin
    case Length(Sender.AsString) of
      11: fMask := cpfMask;
      14: fMask := cnpjMask;
    else
      fMask := ´´;
    end;
    Text := FormatMaskText(fMask, Sender.AsString);
  end;
end;



T+


GOSTEI 1

Mais Respostas

Ant.neto

Ant.neto

27/09/2009

amigo, obrigado pela ajuda, mas n rodou.

Uma opção é usar o evento OnGetText do TField, ex:
const
  cpfMask = ´000.000.000\-00;0;_´;
  cnpjMask = ´00.000.000\/0000\-00;0;_´;
var
  fMask: string;
begin
  if DisplayText then // não formatar na edição // erro aqui.
  begin
    case Length(Sender.AsString) of
      11: fMask := cpfMask;
      14: fMask := cnpjMask;
    else
      fMask := ´´;
    end;
    Text := FormatMaskText(fMask, Sender.AsString); // erro aqui.
  end;
end;
T+



GOSTEI 0
Afarias

Afarias

27/09/2009

|if DisplayText then // não formatar na edição // erro aqui.

Não tem o parâmetro DisplayText (Boolean) no evento OnGetText do TField? Neste caso, remova este IF


|Text := FormatMaskText(fMask, Sender.AsString); // erro aqui.

Vc precisa adicionar a unit MaskUtils (ou outra q contenha a função FormatMaskText) na clásula USES do seu código


T+


GOSTEI 1
POSTAR