Verificar se um Componente MaskEdit está vazio
E ai pessoal voltei com mais uma duvida e essa duvida eu tenho desde que eu me conheço por programador.
Como verificar se o maskedit esta vazio (sem dados), quando se usa mascara???
[b:af1344a484]Por Exemplo:[/b:af1344a484]
Mesmo pq a mascara é interpretada como conteudo, aguardo respostas.
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
Curtidas 0
Melhor post
Marco Salles
24/08/2005
Tem outra forma mais elegante de validar isso?
eu particularmente não me recordo
Pois se eu mudar minha mascara eu vou ter que lembrar dessa validação, não fica muito boa a manutenabilidade.
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´);
obs. Não tem como marcar para nao salvar caracteres)
[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]
E ai pessoal voltei com mais uma duvida e essa duvida eu tenho desde que eu me conheço por programador.
Como verificar se o maskedit esta vazio (sem dados), quando se usa mascara???
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...
GOSTEI 1
Mais Respostas
Macario
16/03/2005
Qual seria a real necessidade Tiago?
GOSTEI 0
Marco Salles
16/03/2005
Como verificar se o maskedit esta vazio (sem dados), quando se usa mascara???
MaskEdit1.EditMask:= !99/99/00;1;_
Para esta mascara , Texte:
if MaskEdit1.Text = ´ / / ´ Then showmessage(´Ta Vazio´) else Showmesage(´Não ta Vazio´);
GOSTEI 0
Yallebr
16/03/2005
Marco Salles,
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.
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
Tiago_fatec_pg
16/03/2005
Esta duvida ainda esta na minha cabecinha!!! :?
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!!! :!: :!:
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
Fknyght
16/03/2005
coloca no evento onexit do maskedit
no caso de data falou, e pra funcionar vc tem que salvar os caracteres na mascara tipo
Espero ter ajudado
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
Marco Salles
16/03/2005
A Idéia é mais ou menos esta ;
[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]
: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:
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...
coloca no evento onexit do maskedit
no caso de data falou, e pra funcionar vc tem que salvar os caracteres na mascara tipo
Código:
maskedit1.editmask := ´99/99/00;1; ´;
Código:
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;
[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;
Por isso eu peço se alguem jah passou por isso por favor tenha um pouco de paciencia com a minha pessoa!!!
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
Marco Salles
16/03/2005
So uma correção :
Certo:
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
Código:
ERRADO*******
Por exemplo : maskedit1.editmask := ´99/99/00;1; ´;
Certo:
Por exemplo : maskedit1.editmask := ´99/99/99;1; ´;
GOSTEI 0