Ir para conteúdo
  • Cadastre-se

dev botao

Propr EditMask do TStringField (Lazarus)


  • Este tópico foi criado há 1260 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Prezados,

Estou tendo dificuldade com máscaras para os TStringFields no Lázarus. O problema é o seguinte:

Tenho um form com um DBEdit ligado ao TStringField cujo campo é um número de telefone;

Estou atribuindo a máscara: "(99)9999.9999;0;_" à propriedade "EditMask" desse componente TStringField como faço no Delphi, porém o comportamento do DBEdit no Lazarus, não é o mesmo do Delphi. 

O DBedit só fica formatado com máscara " (91)8181.8181 " enquanto o está sendo editado, perdendo a formatação assim que o foco sai do componente. Ex.:" 9181818181 ". 

Existe alguma propriedade que estou deixando de configurar no DBEdit ou TStringField? ou esse é o comportamento "normal" desses componentes no Lazarus?

OBS.: Uso Lazarus 1.8.2; Firebird; Zeos (Windows 8.1)

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Creio que seja apenas necessário trocar o ;0; por ;1;

http://delphiparainiciantes.com.br/como-utilizar-mascaras-maskedit-no-delphi/

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
Em 26/08/2019 at 13:06, Daniel Simoes disse:

Creio que seja apenas necessário trocar o ;0; por ;1;

http://delphiparainiciantes.com.br/como-utilizar-mascaras-maskedit-no-delphi/

É antigo, mas por incrível que pareça, ainda não consegui resolver apesar de muitas buscas na web.

No caso exposto acima, não pretendo salvar o conteúdo com a formatação, quero apenas os números.

Se colocar "1" o resultado será o campo com os caracteres indesejados. O comportamento do DBEdit do Lazarus não é o mesmo do Delphi, infelizmente. 

Como posso formatar os campos: "cpf", "cnpj", "telefone" sem perder essa formatação ao sair da digitação do campo no form? 

Link para o comentário
Compartilhar em outros sites

24 minutos atrás, Juliomar Marchetti disse:

O que o Daniel escreveu acima é a resposta. e funciona

Olá Juliomar. 

Primeiramente muito obrigado pelo interesse em ajudar.

Funciona perfeitamente no Delphi, mas no Lazarus tem alguns probleminhas, pelo menos é o que acontece aqui.

Perceba que estou falando do componente "TDBEdit" e sua propriedade "EditMask" no Lázarus. Não do componente "TEditMask", este funciona bem.

Colocando a máscara: "(00)0000.0000;1;_" ou "(00)0000.0000;0;_" o formato fica ok em design "(__)____.____" ;

o que aparece quando o registro é carregado na tela é, por exemplo: "8198989898" ;

Quando o componente recebe o foco a máscara aparece: "(81)9898.9898" ;

Quando o foco sai do componente volta a ser "8198989898" , talvez uma propriedade "DisplayFormat" resolvesse, mas ela não existe no componente citado;

Como o campo da tabela é "varchar(10)" se coloco o "1" no segundo argumento da máscara, ao deixar o foco no componente os três últimos caracteres são truncados e o que vai entrar no DB é isso:"(81)9898.9" ;

Outro: Ao iniciar a digitação o cursor fica em cima do primeiro caractere, no caso "(" exigindo que o usuário tecle algo antes, um espaço por exemplo, para digitar o DDD. 

Resumindo, os caracteres de formatação não ficam fixos como no Delphi ou mesmo como no componente "TMaskEdit" do próprio Lázarus com a possibilidade de salvar de forma literal ou não "1 ou 0 no segundo argumento".  Por enquanto estou deixando sem formato, mas isso não traz uma boa experiência para o usuário.

Acredito que alguém já certamente passou por essa etapa e resolveu sem precisar fazer muita "gambiarra".

 

 

 

 

Link para o comentário
Compartilhar em outros sites

16 minutos atrás, Juliomar Marchetti disse:

há saquei.

olha no field do dataset, tem o displayformat e tem o editFormat

tente colocar ali neles.

No caso Nem um nem outro, apenas "EditMask".

 

Uso:

Lázarus: v2.0.8 (Windows)
Para conexão e manipulação dos dados no servidor:  (TZQuery da ZeosLib) -> Não Têm as propriedades citadas, apenas EditMask.
Para manipulação dos dados no cliente: (TRxMemoryData da RxLib)  -> Idem 
DB: Firebird 2.5

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Ixi. dependencia de mais componentes externos.

enfim coloca o 1 conforme o daniel falou e tu vai ter que salvar as pontuações em seu banco

então tem que aumentar o campo pra comportar

image.png

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1260 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.