Por otro lado ten en cuenta que llamaste a tu clase
TDate, yo le cambiaria el nombre porque colisiona con el tipo primitivo TDate que ya viene con Delphi
Es simplemente para ahorrarse problemas en el futuro
A menos claro, que lo estes haciendo de forma consciente y quieras ocultar el tipo primitivo con la clase