Пример NIch-а не пройдет, т.к. значение longВщгиду можно записать любое, но это не значит что при преобразовании получим правильную дату.
Простейший способ
Код:
var
d: TDateTime;
s: string;
...
try
d := StrToDateTime(s);
except
Application.MessageBox('Введенная дата не корректна. Повторите ввод', 'Ошибочка', MB_OK or MB_ICONWARNING);
end;
...