Fórum Verificar se um Componente MaskEdit está vazio #272640
16/03/2005
0
Como verificar se o maskedit esta vazio (sem dados), quando se usa mascara???
[b:af1344a484]Por Exemplo:[/b:af1344a484]
MaskEdit1.EditMask:= !99/99/00;1;_
Mesmo pq a mascara é interpretada como conteudo, aguardo respostas.
Tiago_fatec_pg
Curtir tópico
+ 0Post mais votado
24/08/2005
eu particularmente não me recordo
var mascara :String;
procedure TForm1.FormShow(Sender: TObject); begin mascara:=MaskEdit1.Text; end;
if MaskEdit1.Text = mascara Then showmessage(´Ta Vazio´) else Showmesage(´Não ta Vazio´);
[b:7f82b7d728]No fimal da mascara coloque zero , ao inves de um[/b:7f82b7d728]
![code]99/99/00;1;_ -->>> Salva !99/99/00;0;_ -->>> Naão salva
Agora estive analisando aqui a duvida inicial do [b:7f82b7d728]Tiago_Fatec_PG[/b:7f82b7d728]
Sera que ele não esta se referindo ao erro que da , quando se sai do Maskedit e deixa alguns campos que são obrigatorios (Devido a presença do Zero ) sem preencher
[b:7f82b7d728]Por exemplo , na mascara !99/99/00;1;_ O Ano tem a digitação obrigatoria.. se preencher o dia e tentar sair do maskEdit se obtem erro[/b:7f82b7d728]
Bem isto so ele para responder...
Marco Salles
Gostei + 1
Mais Posts
16/03/2005
Macario
Gostei + 0
16/03/2005
Marco Salles
Para esta mascara , Texte:
if MaskEdit1.Text = ´ / / ´ Then showmessage(´Ta Vazio´) else Showmesage(´Não ta Vazio´);
Gostei + 0
24/08/2005
Yallebr
Tem outra forma mais elegante de validar isso?
Pois se eu mudar minha mascara eu vou ter que lembrar dessa validação, não fica muito boa a manutenabilidade.
Existe uma propriedade ou forma de saber se o maskedit está vazio independente da mascara? (obs. Não tem como marcar para nao salvar caracteres)
Obrigado.
Gostei + 0
24/08/2005
Tiago_fatec_pg
Bom é o seguinte:
Por exemplo qdo estou trabalhando com os maskedits eles mantem as mascaras e pronto + ou - assim
quero que eles emitam um sinal para o usuario qdo o preenchimento estiver incorreto por exemplo no caso de data [b:25ea178ebf]XX/XX/XXXX[/b:25ea178ebf]
[b:25ea178ebf]
Obs: [/b:25ea178ebf]Este campo é de preenchimento obrigatório
Se o Fulano colocar a data assim 12/__/____ tah errado
Se o fulano colocar a data assim tb 12/03/198_ tah errado
Se ele deixar assim __/__/____ tb ta errado!!!
Se ele colocar assim __/13/1313 tb ta errado
Se ele colocar assim 32/02/2005 tb ta errado
É isso que eu quero com as outras rotinas não consigo verificar a integridade dos dados!!
Por isso eu peço se alguem jah passou por isso por favor tenha um pouco de paciencia com a minha pessoa!!! :!: :!:
Gostei + 0
24/08/2005
Fknyght
no caso de data falou, e pra funcionar vc tem que salvar os caracteres na mascara tipo
maskedit1.editmask := ´99/99/00;1; ´;
Procedure TForm1.MaskEdit1OnExit( Sender : TObject ) var Data : TDate; begin try Data := StrToDate( MaskEdit1.Text ); Except // <-- Aqui vai tratar se existir erro na data ShowMessage(´Data Inválida´); Abort; //<-- Aborta a saida do focu do componente end; end;
Espero ter ajudado
Gostei + 0
24/08/2005
Marco Salles
[b:c9d5616e95]Com uma pequena diferença : para tratar esses dados é recomendável que a mascara não contenha zeros... Coloque na sua mascara so Nove
e coloque o final Digito = 1[/b:c9d5616e95]
Por exemplo : maskedit1.editmask := ´99/99/00;1; ´;
:idea: :idea: :idea: :idea: :idea:
No seu caso é o seguinte: [b:c9d5616e95]como o campo é de digitação obrigatoria [/b:c9d5616e95], Tratar o problema so no evento onexit do maskedit :arrow: não é por si so garantia :cry: :cry: ... :wink:[b:c9d5616e95] Existe teclas de atalho onde o componente não perde o foco , entre outras coisas mais[/b:c9d5616e95]....
Pois bem , faça o seguinte:
var DataPrenchidaErrada:Boolean=False;
procedure TForm1.MaskEdit1Exit(Sender: TObject); var Data : TDate; begin try Data := StrToDate( MaskEdit1.Text ); DataPrenchidaErrada:=False; Except // <-- Aqui vai tratar se existir erro na data ShowMessage(´Data Inválida´); MaskEdit1.SetFocus; DataPrenchidaErrada:=True; end; end;
procedure TForm1.SalvarDadosClick(Sender: TObject); begin SalvarDados.SetFocus; //força o foco a sair do maskedut; if not (DataPrenchidaErrada) Then showmessage(´enquanto a data não tiver Ok Não executo esta mensagem´); end;
com certeza todos nos temos paciencia um para com o outro , mas voce deve indagar mais , e não deixar o tópico ´morto´ , pois ai a gente não sabe que fim levou .. Então se entendeu beleza se não pergunte , indage , que ai a gente vai...
Gostei + 0
25/08/2005
Marco Salles
Certo:
Por exemplo : maskedit1.editmask := ´99/99/99;1; ´;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)