They are not the same. If the declarations had been
TDate = TDateTime;
TTime = TDateTime;
they had been the same. With the additional type
, although they are still technically the same, i.e., they are still double
s, they can be told apart. This, for instance, makes it possible to use different property editors in the Object Inspector for the two types (a date picker and a time picker, respectively), while you may use a 'date-time' picker for TDateTime
.
In addition, even if it weren't for this, it might be good to use different 'aliases' for different purposes. This might make your source code easier to understand. For instance, if you do
var
StartTime: TDate;
then you know that StartTime
contains only information about the date, and not the time (unless you abuse the norms).