TDate ist intern ein double wie TDateTime, enthält also auch einen Nachkommaanteil, daher schlägt der direkte Vergleich mit ziemlicher Sicherheit fehl. Versuch es doch stattdessen mal mit
SameDate.
P.S.: Es gibt keine Else-Schleife, genauso wenig, wie es If-Schleifen gibt