Hola Lubin.
Esta function Calend() la tomé de aqui del foro (no recuerdo de quien es), con algunos retoques, pero me ha funcionado hasta el momento.
Aqui te la dejo.
REDEFINE GET oFecha VAR dFecha ID 202 OF oDlg ;
ACTION Calend(@dFecha,Self,2) BITMAP "FIND" ;
VALID !empty(dFecha)
oFecha:lBtnTransparent := .t.
//-------------------------//Llama a Classe TCalend
FUNCTION Calend( dFecha, oGet, nSide )
LOCAL oDlg, oCal, aRect, nPos
LOCAL lOk := .f.
DEFAULT nSide := 1 // posic derecha
aRect := GetWndRect( oGet:hWnd )
DEFINE DIALOG oDlg FROM 0,0 TO 145,224 PIXEL TITLE "CALEND" // STYLE nor( WS_POPUP,WS_VISIBLE,WS_BORDER)
@-10,-20 CALENDAR oCal VAR dFecha OF oDlg PIXEL DAYSTATE SIZE 150,89 DBLCLICK (lOk:=.t.,oDlg:End())
oCal:bKeyDown := {|nkey| IF( nKey = 13 .OR. nKey = 32, (lOk:=.t.,oDlg:End()), ) }
oDlg:oClient := oCal
if nSide == 1
nPos :=aRect[2]
else
nPos :=aRect[2]-(oDlg:nWidth-oGet:nWidth)
endif
ACTIVATE DIALOG oDlg ;
ON INIT (oCal:show(),oDlg:Move(aRect[1] + oGet:nHeight + 4, nPos)) ;
VALID IF( lOk .AND. ! GetKeyState( VK_ESCAPE ), (oGet:cText := dFecha, oGet:refresh(), .T. ), .t. )
RETURN NIL
Espero te sea util.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql