Como validar a data

Delphi

19/02/2014

Olá Pessoal,

Meu problema é como fazer com que exiba uma mensagem para o usuário quando por exemplo ele deixar a data ou toda vazia ( / / ) ou alguns campos vazios que é o que realmente não estou conseguindo fazer ex: (27/ /1989) ou ( / /1989) ou (27/0 /1989) e entre outros.

Até o momento eu tenho este código que trata se a data estiver totalmente vazia ex: ( / / ) OBS: Estou utilizando um EditMask do tipo ( / / )
if (medtDataFabricado.Text = '  /  /    ') then
    begin
      ShowMessage('O campo DATA FABRICADO não pode ficar em branco!');
      medtDataFabricado.Clear;
      medtDataFabricado.SetFocus;
      exit;
    end;


Agora se o usuário preenccher somente alguns espaços como por ex:(27/ /1989) ele da o seguinte erro:
Project CMS.exe raised exception class EConvertError with message "27/ /1989' is not a valid date'.


Alguem poderia me ajudar a solucionar esse erro?

Desde já agradecido!
Edson Vilhalba

Edson Vilhalba

Curtidas 0

Respostas

Edson Vilhalba

Edson Vilhalba

19/02/2014

A sim o modo de como estou utilizando para inserir é este:
dtsCadastrar.DataSet.FieldByName('FECHA_FABRICADO').AsDateTime := StrToDate(medtDataFabricado.Text);
GOSTEI 0
Marco Salles

Marco Salles

19/02/2014

use o try except

[]sds
GOSTEI 0
Edson Vilhalba

Edson Vilhalba

19/02/2014

Então Marcos eu tentei utilizar desta forma no OnExit do EditMask:
procedure TF_FormProduto.medtDataFabricadoExit(Sender: TObject);
begin
  try
      StrToDate(medtDataFabricado.Text);
  except on EConvertError do
     ShowMessage('Data Inválida!');
  end;
end;


Porém ele continua dando o erro primeiro e depois se em vez de eu apertar o botão break eu apertar continuar ai vai aparecer a mensagem 'Data Inválida'. Que no caso deveria aparecer a mensagem antes do erro, e o erro nem deveria aparecer.
GOSTEI 0
Edson Vilhalba

Edson Vilhalba

19/02/2014

Então galera na verdade não era um erro a questão é que eu estava compilando pelo debug que por consequencia sempre dava a mensagem de erro. Deveria somente compilar normalmente.
Bom mesmo assim agradecido!
GOSTEI 0
Marco Salles

Marco Salles

19/02/2014

isto que eu ia lhe dizer

mas independentemente disso mantenha o try except

[]sds
GOSTEI 0
POSTAR