by FranciscoA » Mon Dec 12, 2016 4:28 am
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.
- Code: Select all Expand view
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