Tratar Data
Amigos,
Boa tarde.
Possuo um campo do tipo TMaskEdit, que possui a mascara: !99/99/9999;1;_
A pergunta é...
como tratar esta campo para não ser inserido datas inválidas e menores do que a data atual?
obrigado amigos!
Boa tarde.
Possuo um campo do tipo TMaskEdit, que possui a mascara: !99/99/9999;1;_
A pergunta é...
como tratar esta campo para não ser inserido datas inválidas e menores do que a data atual?
obrigado amigos!
Fernando_ramos
Curtidas 0
Respostas
Paullsoftware
02/03/2006
já tentou algo assim:
try
if MskData.Text < Date then
begin
ShowMessage(´A Data não pode ser inferior a Atual!´);
MskData.Setfocus;
MskData.Clear;
Exit;
end
else
begin
// comandos se a data for verdadeira
end
Except
on msg: Exception do
begin
showMessage(´A Data informada não é uma data válida!´);
end;
try
if MskData.Text < Date then
begin
ShowMessage(´A Data não pode ser inferior a Atual!´);
MskData.Setfocus;
MskData.Clear;
Exit;
end
else
begin
// comandos se a data for verdadeira
end
Except
on msg: Exception do
begin
showMessage(´A Data informada não é uma data válida!´);
end;
GOSTEI 0
Fernando_ramos
02/03/2006
Amigo,
Fiz assim:
na primeira linha estava apresentando erro por MskData.Text ser STRING diferente do tipo DATA!
então mudei...
ai percebi que ele não entra na excessão! tipo..se eu nao preencher nada deixar apenas ´ / / ´, o delphi mostra erro, dizendo que ´ / / ´ é uma data invalida!
se puder me ajudar!
Fiz assim:
try
if strtodate(MskData.Text) < DATE then
begin
ShowMessage(´A Data não pode ser inferior a Atual!´);
MskData.Setfocus;
MskData.Clear;
Exit;
end
else
begin
ShowMessage(´DATA VALIDA!´);
end;
Except
on msg: Exception do
begin
showMessage(´A Data informada não é uma data válida!´);
end;
end;
na primeira linha estava apresentando erro por MskData.Text ser STRING diferente do tipo DATA!
então mudei...
ai percebi que ele não entra na excessão! tipo..se eu nao preencher nada deixar apenas ´ / / ´, o delphi mostra erro, dizendo que ´ / / ´ é uma data invalida!
se puder me ajudar!
GOSTEI 0
Marco Salles
02/03/2006
ai percebi que ele não entra na excessão! tipo..se eu nao preencher nada deixar apenas ´ / / ´, o delphi mostra erro, dizendo que ´ / / ´ é uma data invalida!
se puder me ajudar!
Esta mensagem que o delphi esta lhe apresentando , se voce executar o programa usando o exe. ela não aparecera.. Esta mensagem é normal e mesmo que voce trate um eventual erro , ela sempre aparecera via projeto, salvo se voce desabilitar esta opção no ide do delphi..
:wink:
Tente ir no executavel , na pasta aonde ele esta gravado e execute o programa por lá.. Veja a diferença
Agora , se voce quiser , informar ao usuário , que a data esta em branco , ao inves de dizer que le não é uma data válida , ai ja é outra historia
GOSTEI 0
Fernando_ramos
02/03/2006
amigo Marco Salles,
realmente chamando pelo .exe funcionou numa boa!
Não sabia dessa.....vlw!!
Outra coisa...
Como eu poderia implementar, caso a data não fosse preenchida...(em branco).
abraços!
realmente chamando pelo .exe funcionou numa boa!
Não sabia dessa.....vlw!!
Outra coisa...
Como eu poderia implementar, caso a data não fosse preenchida...(em branco).
abraços!
GOSTEI 0
Carlos Bernardo
02/03/2006
[quote=´fernando_ramos´]amigo Marco Salles,
realmente chamando pelo .exe funcionou numa boa!
Não sabia dessa.....vlw!!
Outra coisa...
Como eu poderia implementar, caso a data não fosse preenchida...(em branco).
abraços!
realmente chamando pelo .exe funcionou numa boa!
Não sabia dessa.....vlw!!
Outra coisa...
Como eu poderia implementar, caso a data não fosse preenchida...(em branco).
abraços!
If mskdata.text <> ´ / / ´ then
GOSTEI 0
Sandercomputacao
02/03/2006
Galera, eu to com uma dúvida neste componente, se eu digitar uma data inválida ou uma data superior a data de hoje esta funcionando a validação corretamente, porém ao digitar uma data incompleta, tipo: 10/2_/____ e dou ENTER ele me gera o seguinte erro: invalid imput value, alguém sabe como validar este erro??
Obrigado a Todos..
Obrigado a Todos..
GOSTEI 0
Marco Salles
02/03/2006
[b:1fe8dd2528]sandercomputacao[/b:1fe8dd2528] , coloque a mascara da seguinte forma
!99/99/9999;1;_ ou
!99/99/9999;0;_ ....
O Nove na mascara , significa digitaçao não obrigatoria.. Ja mascara contendo zero significa digitação obrigatoria..
O Final Um na mascara significa Salvar Literias(Que nesses caso é a Barra ´/´) e o final zero na mascara significa , que não salva os literias
fluiu :?: :?: :?:
!99/99/9999;1;_ ou
!99/99/9999;0;_ ....
O Nove na mascara , significa digitaçao não obrigatoria.. Ja mascara contendo zero significa digitação obrigatoria..
O Final Um na mascara significa Salvar Literias(Que nesses caso é a Barra ´/´) e o final zero na mascara significa , que não salva os literias
fluiu :?: :?: :?:
GOSTEI 0
Sandercomputacao
02/03/2006
[quote:949ac3ed95=´Marco Salles´][b:949ac3ed95]sandercomputacao[/b:949ac3ed95] , coloque a mascara da seguinte forma
!99/99/9999;1;_ ou
!99/99/9999;0;_ ....
O Nove na mascara , significa digitaçao não obrigatoria.. Ja mascara contendo zero significa digitação obrigatoria..
O Final Um na mascara significa Salvar Literias(Que nesses caso é a Barra ´/´) e o final zero na mascara significa , que não salva os literias
fluiu :?: :?: :?:[/quote:949ac3ed95]
Realmente deu certo Marcos..
Obrigado!
!99/99/9999;1;_ ou
!99/99/9999;0;_ ....
O Nove na mascara , significa digitaçao não obrigatoria.. Ja mascara contendo zero significa digitação obrigatoria..
O Final Um na mascara significa Salvar Literias(Que nesses caso é a Barra ´/´) e o final zero na mascara significa , que não salva os literias
fluiu :?: :?: :?:[/quote:949ac3ed95]
Realmente deu certo Marcos..
Obrigado!
GOSTEI 0