Puede tener que ver con el hecho de que a fin de cuentas un TDateTime es de tipo Double y las comparaciones entre valores double no siempre son lo que se espera debido a la representación interna de dichos valores.
Puedes usar la función CompareDateTime de la unidad DateUtils para tal efecto.
// Saludos
|