* Para instanciar objetos OLE Control es obligatorio el uso de DEFINE CLASS.
DEFINE CLASS clu_OleMonthView AS OleControl
iCal=1 && nro de instancia
icCal='1'
* Se le asignan los valores de constantes de definición de formato
.Object.MonthBackColor=MonthView_Ole_MonthBackColor
.Object.TitleBackColor=MonthView_Ole_TitleBackColor
.Object.TitleForeColor=MonthView_Ole_TitleForeColor
.Object.TrailingForeColor=MonthView_Ole_TrailingForeColor
.Object.ForeColor=MonthView_Ole_ForeColor
PROCEDURE SelChange
LPARAMETERS startdate, enddate, cancel
* Aquí van propiedades que se deben definir en el formulario, a las cuales se les puede asignar algún valor proveniente del control monthview.
THISFORM.Fecha[THIS.iCal]=TTOD(THIS.SelStart)
THISFORM.Refresh
ENDPROC
PROCEDURE Refresh
IF THISFORM.Fecha[THIS.iCal]<{^1753-01-01}
MESSAGEBOX('El Calendario sólo puede representar meses'+CRLF+;
'entre las fechas 01-01-1753 y 31-12-9999.')
THIS.SelChange
RETURN
ENDI
THIS.Day=1 && Evita errores por fechas inválidas
THIS.Year=YEAR(THISFORM.Fecha[THIS.iCal])
THIS.Month=MONTH(THISFORM.Fecha[THIS.iCal])
THIS.Day=DAY(THISFORM.Fecha[THIS.iCal])
ENDPROC
ENDDEFINE