FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Clase Calendario
Posts: 297
Joined: Fri Apr 14, 2006 05:52 PM
Clase Calendario
Posted: Thu Jun 22, 2006 11:38 AM

Hola Foro:

Mirad, tengo un problema muy raro, resulta que tengo un dialogo que cuando se abre no pasa nada, todo funciona correctamente, el problema esta que cuando se abre el dialogo y el puntero del raton está situado sobre el área del Calendario, me sale el siguiente error:

ERROR DESCRIPTION: ERROR BASE/1081 ARGUMENT ERROR: +

CALLED FROM TMICALENDARIO:LFUERA(0)
CALLED FROM TWINDOW:MOUSEMOVE(0)
CALLED FROM TWINDOW:HANDLEEVENT(0)
CALLED FROM TWINDOW:HANDLEEVENT(0)
CALLED FROM _FWH(0)
CALLED FROM WINRUN(0)
CALLED FROM TWINDOW:ACTIVATE(0)
CALLED FROM CREAPRIN(0)
CALLED FROM STDIDI(0)

Alguna ayuda?

[/img]

:)

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Clase Calendario
Posted: Thu Jun 22, 2006 11:48 AM

Mike,

Que código hay en TMICALENDARIO:LFUERA() ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 297
Joined: Fri Apr 14, 2006 05:52 PM
Clase Calendario
Posted: Thu Jun 22, 2006 08:41 PM

Gracias Antonio! :)

La clase esta desarrollada por Rodrigo Soto y Bingen Ugaldebere, por si te sirve de algo. El Metodo

METHOD lFuera( nRow, nCol) CLASS TMiCalendario
Return iif( (nRow > (::nFila1 + 3) .and.;
nRow <= (::nFila2 - 3) .and.;
nCol > (::nCol1 + 3) .and.;
nCol <= (::nCol2 - 3) ), .f., .t.)

Constructor

METHOD New (nTop, nLeft, nWidth, nHeight, oWnd, oFont, nLANGUAGE ) CLASS TMiCalendario
DEFAULT nTop:=5, nLeft:=5,nWidth:=120,nHeight:=120 //Bingen
DEFAULT nLanguage := L_SPANISH

 ::nContador := 1
 // Coordenadas de la region de dibujo.
 ::nTop      := nTop
 ::nLeft     := nLeft
 ::nBottom   := ::nTop  + nHeight
 ::nRight    := ::nLeft + nWidth

  ::dFechaControl := Date()
 ::bFestivos     := {|| ARRAY(0)  }  //Bingen
 ::nLanguage   := nLanguage          //Bingen
 ::Language()                        //Bingen

  // Definicion del tooltip por dia..
 ::TipLimpiar()

  // Array con dias festivos...
 ::aFestivos     := { {}, {}, {},;
                              {}, {}, {},;
                              {}, {}, {},;
                  {}, {}, {}  }
 ::oWnd      := oWnd
 ::oFont     := oFont
 ::lFont     := !oFONT=NIL
 ::nPosFila  := 1
 ::nPosCol   := 1
 ::nPosBoton := 1
 ::aColorCuerpo := { nRgb(205,240,240),; // Color Borde superior
                  nRgb(145,220,220),; // Color de Relleno
             nRgb( 55,170,170),; // Color Borde inferior
         nRgb(  0,  0,  0),; // Color del texto,
             nRgb(130,130, 65)}  // Color dia seleccionado al perder el foco

 ::aColorTitulo := { nRgb( 55,170,170),; // Color Borde superior
                     nRgb( 40,120,120),; // Color de Relleno
             nRgb( 40,110,110),; // Color Borde inferior
 ::aColorCuerpo[2],; // Color Letra mes y año
                 nRgb(205,205,155) } // Color de los dias.
 ::aColorBoton  := { nRgb( 55,170,170),; // Color Borde superior
                       nRgb( 40,120,120),; // Color de Relleno
             nRgb( 40,110,110),; // Color Borde inferior
  ::aColorCuerpo[2],; // Color Letra
 ::aColorCuerpo[2] } // Color relleno cuando se selecciona.
     ::aColorDomingo := ::aColorTitulo
     ::aColorFestivo := ::aColorTitulo


    ::nPosicion    := day(::dFechaControl)
   ::FijaClrs()
  ::FijaClrDomingo()
   ::FijaClrFestivo()

   ::nStyle    := nOr(WS_CHILD, WS_VISIBLE, WS_TABSTOP)
     ::Register()
     If !Empty( oWnd:hWnd )
         ::Create()
          oWnd:AddControl( Self )
     else
          oWnd:DefControl( Self )
     endif
       ::hWndFijo := ::hWnd

Return Self

Si te falta algo mas de código, te subo la clase entera.

UN SALUDO.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Clase Calendario
Posted: Thu Jun 22, 2006 09:57 PM

Mike,

> Si te falta algo mas de código, te subo la clase entera.

Si, por favor, súbela a www.hyperupload.com y copias aquí el link de descarga que te proporcionan.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 297
Joined: Fri Apr 14, 2006 05:52 PM
Clase Calendario
Posted: Thu Jun 22, 2006 10:38 PM

Antonio, es la primera vez que subo algo, espero que funcione.

http://hyperupload.com/download/0244b22 ... A.PRG.html

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Clase Calendario
Posted: Fri Jun 23, 2006 08:56 AM
Mike,

Correctamente subido, gracias :-)

Prueba este cambio y comprueba que valores te aparecen:
METHOD lFuera( nRow, nCol)  CLASS TMiCalendario
   MsgInfo( ::nFila1 )
   MsgInfo( ::nCol1 )
Return iif( (nRow  > (::nFila1 + 3) .and.;
             nRow <= (::nFila2 - 3) .and.;
             nCol  > (::nCol1  + 3) .and.;
	     nCol <= (::nCol2  - 3) ), .f., .t.)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 297
Joined: Fri Apr 14, 2006 05:52 PM
Clase Calendario
Posted: Sat Jun 24, 2006 08:39 AM
Antonio Linares wrote:Mike,

Correctamente subido, gracias :-)

Prueba este cambio y comprueba que valores te aparecen:
METHOD lFuera( nRow, nCol)  CLASS TMiCalendario
   MsgInfo( ::nFila1 )
   MsgInfo( ::nCol1 )
Return iif( (nRow  > (::nFila1 + 3) .and.;
             nRow <= (::nFila2 - 3) .and.;
             nCol  > (::nCol1  + 3) .and.;
	     nCol <= (::nCol2  - 3) ), .f., .t.)


Antonio, me pusiste en el camino, y creo que está todo solucionado. El problema era ::nFila1, que mostraba NIL, yo lo he solucionado inicializando las variales de instancia en la clase (nFila1,nFila2,nCol1,nCol2). Las he inicializado a 0, y no hay ya problema. De todas maneras me gustaría tu opinion al lo que he hecho.

UN SALUDO y muchisimas gracias ANTONIO.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Clase Calendario
Posted: Sat Jun 24, 2006 09:33 AM

Mike,

Has hecho lo correcto :)

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion