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]
Clase Calendario
-
- Posts: 287
- Joined: Fri Apr 14, 2006 5:52 pm
- Location: Córdoba (España)
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 287
- Joined: Fri Apr 14, 2006 5:52 pm
- Location: Córdoba (España)
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.
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.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
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.
> 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.
-
- Posts: 287
- Joined: Fri Apr 14, 2006 5:52 pm
- Location: Córdoba (España)
Antonio, es la primera vez que subo algo, espero que funcione.
http://hyperupload.com/download/0244b22 ... A.PRG.html
http://hyperupload.com/download/0244b22 ... A.PRG.html
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Mike,
Correctamente subido, gracias
Prueba este cambio y comprueba que valores te aparecen:
Correctamente subido, gracias
Prueba este cambio y comprueba que valores te aparecen:
Code: Select all
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.)
-
- Posts: 287
- Joined: Fri Apr 14, 2006 5:52 pm
- Location: Córdoba (España)
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.Antonio Linares wrote:Mike,
Correctamente subido, gracias
Prueba este cambio y comprueba que valores te aparecen:Code: Select all
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.)
UN SALUDO y muchisimas gracias ANTONIO.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact: