Te ocurre porque el
MonthCalendar no está recibiendo el "foco" (sólo lo recibe en "determinados" momentos). Lo que puedes hacer es, en el momento en el que muestras el calendario, hacer que lo reciba mediante el método
SetFocus y, también, cuando haces click en alguna fecha si lo estás cerrando al hacer el doble click.
Por ejemplo, imaginando que lo muestras al pulsar un botón:
Código Delphi
[-]
...
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Visible := True;
MonthCalendar1.SetFocus;
end;
procedure TForm1.MonthCalendar1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = then
end;
...
Saludos!