How I hate this bug and we do not get rid of it for how long? - about 10 years.
It is a Windows-feature.

Probably due to the regional format settings, which are not done well enough.
And it is an - I am here - I am gone - error.
Often I just started the app again and it was gone.
Several times not. All looked perfect, but one rainy day I read "not a valid date, bäääh".
As both the watch window and you are tricked by the OS, there is no debug possible.
Try this, enforce a setting, I have not seen it for quite a long time up to now, but we never know:
Result[i].Datum := StrToDate(s, DefaultFormatSettings);
which can look e.g. like this:
var fs: TFormatSettings;
begin
fs := DefaultFormatSettings;
fs.DateSeparator := '-';
fs.ShortDateFormat := 'yyyy-mm-dd';
result := StrToDateTime(s, fs); // Wandelt "2010-12-28" in ein Datum um
end;
Good luck, you will need it.