Hola Felipe, compila tu aplicación con la opción "Use Debug DCUs". Entonces, al aparecer el mensaje de error, Delphi te señalará el punto donde se elevó la excepción.
Ahí puedes abrir la pila de llamadas (Ctrl+Alt+S), en inglés
call stack, con lo cual podrás observar el camino que siguió el programa hasta llegar a ese punto.
Es posible que mediante algún evento o control de pantalla se esté llamando a la función StrToDate, la cual, cuando la cadena a convertir es vacía, te mostrará el mensaje de error que señalas.
En SysUtils.pas (de Delphi 7):
Código Delphi
[-]function StrToDate(const S: string): TDateTime;
begin
if not TryStrToDate(S, Result) then
ConvertErrorFmt(@SInvalidDate, [S]);
end;
En SysConst.pas (de Delphi 7):
Código Delphi
[-]SInvalidDate = '''%s'' is not a valid date';
Quizá se está tomando el valor de campo con una expresión tipo
FieldByName (Fecha).AsString, que en el caso de ser nulo el campo (como cuando un conjunto de datos no tiene filas) te regresará una cadena vacía ('').
Un abrazo normal.
Al González.
