Fórum Validar Data #374634
07/09/2009
0
Já pesquisei neste forum e encontrei algumas funções para validar datas, porem nenhuma delas funciona corretamente.
Muitos outros usuários tambem tem esse mesmo problema, e acho que o Delphi peca nisso, não existe um comando ou função do próprio software que faça isso, pelo menos que eu saiba.
Em funções que encontrei, o autor primeiro tenta converter uma string em data (StrToDate), porem se a string contem uma data inexistente, o Delphi já dá a mensagem de erro interrompendo a rotina.
Veja o exemplo:
[b:5dbde1ab60]function tbStrIsDate(const S: string): boolean;
begin
try
StrToDate(S); //nesta linha ocorre o erro
Result := true;
except
Result := false;
end;
end;[/b:5dbde1ab60]
Entendi que o Delphi só executa a linha StrToDate se a constante ´S´ for uma data válida, então a função acima não funciona.
Alguem tem alguma solução?
Muitos outros usuários tambem tem esse mesmo problema, e acho que o Delphi peca nisso, não existe um comando ou função do próprio software que faça isso, pelo menos que eu saiba.
Em funções que encontrei, o autor primeiro tenta converter uma string em data (StrToDate), porem se a string contem uma data inexistente, o Delphi já dá a mensagem de erro interrompendo a rotina.
Veja o exemplo:
[b:5dbde1ab60]function tbStrIsDate(const S: string): boolean;
begin
try
StrToDate(S); //nesta linha ocorre o erro
Result := true;
except
Result := false;
end;
end;[/b:5dbde1ab60]
Entendi que o Delphi só executa a linha StrToDate se a constante ´S´ for uma data válida, então a função acima não funciona.
Alguem tem alguma solução?
Cps.art
Curtir tópico
+ 0
Responder
Post mais votado
07/09/2009
como assim não funciona ???
Funciona sim ... O Delphi interrompe , mas ele depois retorna a execução
Normal ... Sevc chamar no .exe esta Rotina , Vc não vera a mensagem
do Delphi Reclamando desta impossibilidade de fazer a Conversão
Porém Existe Uma Funçao Nativa do Delph a partir do Delphi7
Com esta função , mesmo que a data seja Inválida vc não verá amensagem
do DELPHI
Funciona sim ... O Delphi interrompe , mas ele depois retorna a execução
Normal ... Sevc chamar no .exe esta Rotina , Vc não vera a mensagem
do Delphi Reclamando desta impossibilidade de fazer a Conversão
Porém Existe Uma Funçao Nativa do Delph a partir do Delphi7
procedure TForm1.Button1Click(Sender: TObject); var DataDigitadaNoEdit:TDateTime; begin if TryStrToDate(edit1.Text,DataDigitadaNoEdit) then Showmessage(´Data Válida : ´+DateToStr(DataDigitadaNoEdit)) else Showmessage(´Data Inválida´); end;
Com esta função , mesmo que a data seja Inválida vc não verá amensagem
do DELPHI
Marco Salles
Responder
Gostei + 2
Mais Posts
07/09/2009
Cps.art
Você tem razão [b:1dede0525f]Marco Salles[/b:1dede0525f].
Não tinha atentado para o fato de executar a partir do .EXE.
Funcionou.
Valeu a lembrança.
Não tinha atentado para o fato de executar a partir do .EXE.
Funcionou.
Valeu a lembrança.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)