Como validar a data
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 ( / / )
Agora se o usuário preenccher somente alguns espaços como por ex:(27/ /1989) ele da o seguinte erro:
Alguem poderia me ajudar a solucionar esse erro?
Desde já agradecido!
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
Curtidas 0
Respostas
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
19/02/2014
use o try except
[]sds
[]sds
GOSTEI 0
Edson Vilhalba
19/02/2014
Então Marcos eu tentei utilizar desta forma no OnExit do EditMask:
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.
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
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!
Bom mesmo assim agradecido!
GOSTEI 0
Marco Salles
19/02/2014
isto que eu ia lhe dizer
mas independentemente disso mantenha o try except
[]sds
mas independentemente disso mantenha o try except
[]sds
GOSTEI 0