Hola cincosoft.
MonthCalendar, no posee un evento que se dispare ante la selección de un día, pero si el
Parent del
TMonthCalendar es el form, podrías aprovechar el mensaje
WM_NOTIFY.
Como ejemplo:
Código Delphi
[-]
...
type
TForm1 = class(TForm)
MonthCalendar1: TMonthCalendar;
private
FDateSelected: TDate;
procedure MonthCalendarChange;
protected
procedure WmNotify(var Msg: TWMNOTIFY); message WM_NOTIFY;
public
end;
var
Form1: TForm1;
implementation {$R *.dfm}
uses CommCtrl;
procedure TForm1.MonthCalendarChange;
begin
ShowMessage('Fecha seleccionada: '+ DateToStr(FDateSelected));
end;
procedure TForm1.WmNotify(var Msg: TWMNOTIFY);
begin
if PNMHdr(Msg.NMHdr)^.code = MCN_SELECT then
begin
with PNMSelChange(Msg.NMHdr)^ do
begin
FDateSelected:= MonthCalendar1.Date;
MonthCalendarChange;
end;
end;
inherited;
end;
...
Saludos.