FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour sobre DatePicker
Posts: 838
Joined: Wed Aug 22, 2007 10:09 AM
sobre DatePicker
Posted: Mon Feb 23, 2015 12:06 PM

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.

Saludos / Regards,



FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: sobre DatePicker
Posted: Mon Feb 23, 2015 02:09 PM
Talvez:

Code (fw): Select all Collapse
   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..


Mira en \samples\ SCHEDULE.PRG se funciona con tú vérsion del fivewin.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: sobre DatePicker
Posted: Mon Feb 23, 2015 02:41 PM

Quizas llamando al metodo ::Open() del control en el activate del dialogo o inicializando la DATA lClosed en el activate

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 838
Joined: Wed Aug 22, 2007 10:09 AM
Re: sobre DatePicker
Posted: Mon Feb 23, 2015 03:22 PM
Hola,

Muchas gracias, me refiero a que saliera automáticamente así:

Saludos / Regards,



FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: sobre DatePicker
Posted: Mon Feb 23, 2015 03:44 PM
Así
Code (fw): Select all Collapse
#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 NIL


Saludos,

Adhemar
Saludos,



Adhemar C.
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: sobre DatePicker
Posted: Mon Feb 23, 2015 03:45 PM
C:\FWH..\SAMPLES\TESTCAL2.PRG

Code (fw): Select all Collapse
#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 nil


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 838
Joined: Wed Aug 22, 2007 10:09 AM
Re: sobre DatePicker
Posted: Mon Feb 23, 2015 05:21 PM

Hola,

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()

Saludos / Regards,



FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Posts: 838
Joined: Wed Aug 22, 2007 10:09 AM
Re: sobre DatePicker
Posted: Tue Feb 24, 2015 05:28 PM
Hola,

He preparado un ejemplo, pero el ON INIT oDatePicker:Open() no funciona.

¿Alguien sabe la razón por favor?.

Code (fw): Select all Collapse
// 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
*********************************************************************************************
Saludos / Regards,



FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: sobre DatePicker
Posted: Tue Feb 24, 2015 05:50 PM

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

&

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: sobre DatePicker
Posted: Tue Feb 24, 2015 05:52 PM
Fácil:

Code (fw): Select all Collapse
// 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


Saludos
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 838
Joined: Wed Aug 22, 2007 10:09 AM
Re: sobre DatePicker
Posted: Tue Feb 24, 2015 06:37 PM
Hola,

Muchísimas gracias. Ya casi está, pero me gustaría eliminar el punto que se ve del Diálogo que uso para el DatePicker:





Code (fw): Select all Collapse
// 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
*********************************************************************************************
Saludos / Regards,



FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: sobre DatePicker
Posted: Tue Feb 24, 2015 08:25 PM
Code (fw): Select all Collapse
// 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
*********************************************************************************************


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion