Hola,
Me gustaría por favor forzar a que el DatePicker aparezca ya desplegado, via ACTIVATE oDlg ON INIT oDatePicker:Quesemuestredesplegadoya().
Por favor, ¿cómo se hace?.
Muchas gracias.
FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Hola,
Me gustaría por favor forzar a que el DatePicker aparezca ya desplegado, via ACTIVATE oDlg ON INIT oDatePicker:Quesemuestredesplegadoya().
Por favor, ¿cómo se hace?.
Muchas gracias.
vFecIni := Date()
Define ..etc…
REDEFINE DTPicker o821 VAR vFecIni ID 821 UPDATE OF oDlg ; // Calendario
VALID Empty(vFecIni) .OR. Eval ( { ||;
IF (! Valtype(vFecIni)='D' , ;
( MsgStop (OemToAnsi("Fecha no Ingresada ")), .F.) ,;
(vFecha := vFecIni,;
o822:Refresh() , .T. ) ) })
REDEFINE SAY o822 prompt vFecIni ID 822 UPDATE OF oFld:aDialogs[2] Picture "D" //Recepción de la fecha
Activate etc..Quizas llamando al metodo ::Open() del control en el activate del dialogo o inicializando la DATA lClosed en el activate

#include "FiveWin.ch"
#include "calendar.ch"
FUNCTION Main()
LOCAL oWnd, oCal
LOCAL dHoy := Date()
SET DATE TO FREN
SET EPOCH TO 1980
DEFINE DIALOG oWnd FROM 0, 0 TO 150, 220 PIXEL
@ 0, 0 CALENDAR oCal VAR dHoy OF oWnd PIXEL DAYSTATE size 111,75
ACTIVATE DIALOG oWnd ON INIT oCal:move(0,0)
RETURN NILSaludos,
Adhemar Cuéllar
#include "FiveWin.ch"
#include "dtpicker.ch"
#include "calendar.ch"
#include "wcolors.ch"
FUNCTION Main()
LOCAL oWnd, oCal
LOCAL dDate1
LOCAL aDates
SET DATE TO BRITISH
SET EPOCH TO 1980
dDate1 = Date()
aDates := { CToD( "15/04/2010" ),;
CToD( "28/04/2010" ),;
CToD( "01/05/2010" ),;
CToD( "15/05/2010" ),;
CToD( "16/05/2010" ),;
CToD( "03/06/2010" ) }
DEFINE WINDOW oWnd TITLE "Test Calendar" FROM 0, 0 TO 300, 300 PIXEL
@ 15, 15 CALENDAR oCal VAR dDate1 OF oWnd PIXEL DAYSTATE
OnGetState( oCal, aDates )
oCal:SetDayState()
oCal:bOnGetState = { | oCal | OnGetState( oCal, aDates ) }
oCal:bChange = { |o| MsgInfo( o:GetDate() ) }
oWnd:Center()
ACTIVATE WINDOW oWnd
RETURN NIL
Function OnGetState( oCal, aDates )
LOCAL i, imax, j, jmax, nDay, nDayState, nMonth
LOCAL dStartDate
LOCAL dCurrentDay := oCal:dDate
oCal:GetMonthRange()
dStartDate = oCal:dDate
nMonth := Month( dStartDate )
FOR i = 1 TO Len( aDates )
nDayState := 0
IF Month( aDates[ i ] ) == nMonth
oCal:SetArrayDayState( 1, Day( aDates[ i ] ) )
ENDIF
NEXT
oCal:SetDate( dCurrentDay )
return nilHola,
Lo que pretendo es ocultar el Get de DatePicker y usar su calendario para devolver la fecha, un sustituto de MsgDate() de Fivewin.
Yo llamo al calendario desde un botón.
Igual no me he explicado bien, pero el método de DatePicker:Open() no funciona ACTIVATE DIALOG ON INIT DatePicker:Open()
// MBA 24.02.2015
#include "FiveWin.ch"
#include "constant.ch"
#define DTN_FIRST -760
#define DTN_DATETIMECHANGE (DTN_FIRST + 1)
#define DTN_DROPDOWN (DTN_FIRST + 6) // MonthCal has dropped down
#define DTN_CLOSEUP (DTN_FIRST + 7) // MonthCal is popping up
REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESWIN
static oDlg
static cResult := nil
*********************************************************************************************
FUNCTION Main()
*********************************************************************************************
LOCAL oWnd
// Idioma español para Harbour
HB_LangSelect("ESWIN") // Para mensajes, fechas, etc..
HB_CDPSELECT("ESWIN") // Para ordenación, requiere CodePage.lib
SET EPOCH TO 1950
SET CENTURY ON
SET DATE FORMAT TO "DD/MM/YYYY"
DEFINE WINDOW oWnd FROM 1, 1 TO 12, 32 TITLE "TEST Moisés"
ACTIVATE WINDOW oWnd CENTERED;
on init test()
RETURN( NIL )
*********************************************************************************************
*********************************************************************************************
FUNCTION Test( dFecha )
*********************************************************************************************
LOCAL oWndMain := WndMain()
LOCAL oDatePicker
LOCAL oTimer
DEFAULT dFecha := Date()
// Reset valores
cResult := nil
// Diálogo oculto
DEFINE DIALOG oDlg
@ 1, 10 BUTTON "Abrir" ACTION oDatePicker:Open()
@ 2, 10 BUTTON "Salir" ACTION oDlg:End()
// METHOD New( nRow, nCol, bSetGet, oWnd, nWidth, nHeight, bValid, nClrFore,;
// nClrBack, oFont, lDesign, oCursor, lPixel, cMsg, lUpdate,;
// bWhen, bChange, nHelpId, cPic ) Class TDatePick
oDatePicker := TDatePick():New( 0, 0, { || dFecha }, oDlg, 13, 13, nil, nil, nil, nil, .F., nil, nil, "cmeg", .t., NIL, {|Objeto| cResult := Objeto:cText } )
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT oDatePicker:Open()
MsgInfo( cResult )
oWndMain:End()
QUIT
RETURN NIL
*********************************************************************************************Moises
Has visto el ejemplo que te pone Karinha
viewtopic.php?f=6t=30229#p172974
No es eso lo que necesitas?
Esta en samples de Fwh
&
// MBA 24.02.2015
#include "FiveWin.ch"
#include "constant.ch"
#include "dtpicker.ch"
#include "calendar.ch"
#define DTN_FIRST -760
#define DTN_DATETIMECHANGE (DTN_FIRST + 1)
#define DTN_DROPDOWN (DTN_FIRST + 6) // MonthCal has dropped down
#define DTN_CLOSEUP (DTN_FIRST + 7) // MonthCal is popping up
REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESWIN
static oDlg
static cResult := nil
static oWnd
*********************************************************************************************
FUNCTION Main()
*********************************************************************************************
// Idioma español para Harbour
HB_LangSelect("ESWIN") // Para mensajes, fechas, etc..
HB_CDPSELECT("ESWIN") // Para ordenación, requiere CodePage.lib
SET EPOCH TO 1950
SET CENTURY ON
SET DATE FORMAT TO "DD/MM/YYYY"
DEFINE WINDOW oWnd FROM 1, 1 TO 12, 32 TITLE "TEST Moisés"
/*
ACTIVATE WINDOW oWnd CENTERED ; // no tiene CENTERED en FWH13.06
on init test()
*/
ACTIVATE WINDOW oWnd ;
on init test()
RETURN( NIL )
*********************************************************************************************
FUNCTION Test( dFecha )
*********************************************************************************************
LOCAL oWndMain := WndMain()
LOCAL oDatePicker
LOCAL oTimer
DEFAULT dFecha := Date()
// Reset valores
cResult := nil
// Diálogo oculto
DEFINE DIALOG oDlg
@ 1, 10 BUTTON "Abrir" ACTION oDatePicker:Open()
@ 2, 10 BUTTON "Salir" ACTION oDlg:End()
oDatePicker := TDatePick():New( 0, 0, { || dFecha }, oDlg, 13, 13, nil, nil, nil, nil, .F., nil, nil, "cmeg", .t., NIL, {|Objeto| cResult := Objeto:cText } )
ACTIVATE DIALOG oDlg CENTERED ;
ON PAINT oDatePicker:Open()
MsgInfo( cResult )
oWndMain:End()
QUIT
RETURN NIL
// MBA 24.02.2015
#include "FiveWin.ch"
#include "constant.ch"
#define DTN_FIRST -760
#define DTN_DATETIMECHANGE (DTN_FIRST + 1)
#define DTN_DROPDOWN (DTN_FIRST + 6) // MonthCal has dropped down
#define DTN_CLOSEUP (DTN_FIRST + 7) // MonthCal is popping up
REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESWIN
static oDlg
static cResult := nil
static nVeces := 0
*********************************************************************************************
FUNCTION Main()
*********************************************************************************************
LOCAL oWnd
// Idioma español para Harbour
HB_LangSelect("ESWIN") // Para mensajes, fechas, etc..
HB_CDPSELECT("ESWIN") // Para ordenación, requiere CodePage.lib
SET EPOCH TO 1950
SET CENTURY ON
SET DATE FORMAT TO "DD/MM/YYYY"
DEFINE WINDOW oWnd FROM 1, 1 TO 12, 32 TITLE "TEST Moisés"
ACTIVATE WINDOW oWnd MAXIMIZED ; //CENTERED;
on init test()
RETURN( NIL )
*********************************************************************************************
*********************************************************************************************
FUNCTION Test( dFecha )
*********************************************************************************************
LOCAL oWndMain := WndMain()
LOCAL oDatePicker
LOCAL oTimer
DEFAULT dFecha := Date()
// Reset valores
cResult := nil
nVeces := 0
// Diálogo oculto
DEFINE DIALOG oDlg FROM -0,-0 to -0,-0 PIXEL ;
STYLE nOr( WS_POPUP ) ;
// METHOD New( nRow, nCol, bSetGet, oWnd, nWidth, nHeight, bValid, nClrFore,;
// nClrBack, oFont, lDesign, oCursor, lPixel, cMsg, lUpdate,;
// bWhen, bChange, nHelpId, cPic ) Class TDatePick
oDatePicker := TDatePick():New( 0, 0, { || dFecha }, oDlg, 3, 3, nil, nil, nil, nil, .F., nil, nil, "cmeg", .t., NIL, {|Objeto| cResult := Objeto:cText, CloseDlg_MsgDate() } )
ACTIVATE DIALOG oDlg CENTERED ;
ON PAINT oDatePicker:Open() ;
on init odlg:Hide()
MsgInfo( cResult )
oWndMain:End()
QUIT
RETURN NIL
*********************************************************************************************
*********************************************************************************************
FUNCTION CloseDlg_MsgDate()
*********************************************************************************************
nVeces++
if nveces > 1
nVeces := 0
oDlg:End()
endif
return nil
*********************************************************************************************// MBA 24.02.2015
#include "FiveWin.ch"
#include "constant.ch"
#define DTN_FIRST -760
#define DTN_DATETIMECHANGE (DTN_FIRST + 1)
#define DTN_DROPDOWN (DTN_FIRST + 6) // MonthCal has dropped down
#define DTN_CLOSEUP (DTN_FIRST + 7) // MonthCal is popping up
REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESWIN
static oDlg
static cResult := nil
static nVeces := 0
*********************************************************************************************
FUNCTION Main()
*********************************************************************************************
LOCAL oWnd
// Idioma español para Harbour
HB_LangSelect("ESWIN") // Para mensajes, fechas, etc..
HB_CDPSELECT("ESWIN") // Para ordenación, requiere CodePage.lib
SET EPOCH TO 1950
SET CENTURY ON
SET DATE FORMAT TO "DD/MM/YYYY"
DEFINE WINDOW oWnd FROM 1, 1 TO 12, 32 TITLE "TEST Moisés"
ACTIVATE WINDOW oWnd MAXIMIZED ; //CENTERED;
on init test()
RETURN( NIL )
*********************************************************************************************
*********************************************************************************************
FUNCTION Test( dFecha )
*********************************************************************************************
LOCAL oWndMain := WndMain()
LOCAL oDatePicker
LOCAL oTimer
DEFAULT dFecha := Date()
// Reset valores
cResult := nil
nVeces := 0
// Diálogo oculto
DEFINE DIALOG oDlg FROM -1,-1 to -1,-1 PIXEL ;
STYLE nOr( WS_POPUP )
oDlg:lHelpIcon := .F.
// METHOD New( nRow, nCol, bSetGet, oWnd, nWidth, nHeight, bValid, nClrFore,;
// nClrBack, oFont, lDesign, oCursor, lPixel, cMsg, lUpdate,;
// bWhen, bChange, nHelpId, cPic ) Class TDatePick
oDatePicker := TDatePick():New( 1, 1, { || dFecha }, oDlg, 3, 3, nil, nil, nil, nil, .F., nil, nil, "cmeg", .t., NIL, {|Objeto| cResult := Objeto:cText, CloseDlg_MsgDate() } )
oDatePicker:Refresh()
ACTIVATE DIALOG oDlg CENTERED ;
ON PAINT( oDatePicker:Open() ) ;
ON INIT( oDlg:Hide() )
MsgInfo( cResult )
oWndMain:End()
QUIT
RETURN NIL
*********************************************************************************************
*********************************************************************************************
FUNCTION CloseDlg_MsgDate()
*********************************************************************************************
nVeces++
if nveces > 1
nVeces := 0
oDlg:End()
endif
return nil
*********************************************************************************************