Das Programm tut schon etwas. Es läuft immer weiter in der Schleife
Abgesehen davon, dass man nicht sieht, was Du "Tag" zuvor zugewiesen hast, solltest Du auf Tag >= Now prüfen.
TDateTime ist außerdem ein Realwert. Im ganzzahligen Teil ist der Tag und in den Nachkommastellen die Uhrzeit gespeichert.
Vielleicht ist es grundsätzlich sinnvoller, direkt mit TDate zu arbeiten.