Validar Data

Delphi

07/09/2009

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?


Cps.art

Cps.art

Curtidas 0

Melhor post

Marco Salles

Marco Salles

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


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


GOSTEI 2

Mais Respostas

Cps.art

Cps.art

07/09/2009

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.


GOSTEI 0
POSTAR