Me ha parecido interesante publicar el truco en DA y en delphi.
El asunto es que un TDateTimePicker no es un TCalendar hasta que no lo desplegamos, así que usaremos el evento OnDropDown para añadir el siguiente código:
delphi
const // de CommCtrl.h DTM_FIRST = $1000; DTM_GETMONTHCAL = DTM_FIRST + 8; MCS_NOTODAYCIRCLE = $0008; // Quita el círculo en el día de hoy MCS_NOTODAY = $0010; // Quita la leyenda del día de hoy procedure TForm1.DateTimePicker1DropDown(Sender: TObject); var hCalendar: THandle; begin // Encontramos el HANDLE del calendario hCalendar:= SendMessage(DateTimePicker1.Handle, DTM_GETMONTHCAL, 0, 0); // Quitamos el círculo y la leyenda del día de hoy if hCalendar > 0 then SetWindowLong(hCalendar, GWL_STYLE, GetWindowLong(hCalendar, GWL_STYLE) or MCS_NOTODAYCIRCLE or MCS_NOTODAY); end;
Saludos.