Page 1 of 2
error interno FWH
Posted:
Sat Feb 09, 2013 11:12 am
by elvira
Hola amigos,
Me sucede este error interno en FWH:
- Code: Select all Expand view
Error description: Error BASE/1005 Message not found: NIL:_OICON
Args:
[ 1] = U
Stack Calls
===========
Called from: => __ERRRT_SBASE( 0 )
Called from: ../../../tobject.prg => NIL:ERROR( 0 )
Called from: ../../../tobject.prg => (b)HBOBJECT( 0 )
Called from: ../../../tobject.prg => NIL:MSGNOTFOUND( 0 )
Called from: ../../../tobject.prg => NIL:_OICON( 0 )
Called from: source\rpreview.prg => (b)TPREVIEW_ACTIVATE( 167 )
Called from: .\source\classes\WINDOW.PRG => (b)TWINDOW( 636 )
Called from: .\source\classes\WINDOW.PRG => TWINDOW:LVALID( 0 )
Called from: .\source\classes\WINDOW.PRG => (b)TWINDOW( 326 )
Called from: .\source\classes\WINDOW.PRG => TWINDOW:END( 0 )
Called from: .\source\classes\WINDOW.PRG => TWINDOW:SYSCOMMAND( 2373 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3154 )
Called from: => SYSREFRESH( 0 )
Called from: .\source\function\MSGRUN.PRG => STOPUNTIL( 60 )
Called from: source\rpreview.prg => TPREVIEW:ACTIVATE( 173 )
Called from: source\rpreview.prg => RPREVIEW( 1701 )
Called from: source\report.prg => (b)TREPORT_NEW( 187 )
Called from: source\report.prg => TREPORT:ACTIVATE( 882 )
¿Qué puede ser?.
Gracias.
Re: error interno FWH
Posted:
Sat Feb 09, 2013 12:13 pm
by Antonio Linares
Elvira,
Puedes mostrarnos el código PRG que estás ejecutando ?
Re: error interno FWH
Posted:
Sat Feb 09, 2013 1:42 pm
by elvira
Antonio,
claro, gustosamente:
- Code: Select all Expand view
DEFINE FONT oFont1 NAME "ARIAL" SIZE 0,-10
DEFINE FONT oFont2 NAME "ARIAL" SIZE 0,-10 BOLD
SELECT ("ARTICULO")
DbGoTop()
REPORT oReport TITLE OemToAnsi(" Listado del ALMACEN general ") ;
FONT oFont1, oFont2 ;
HEADER Space(10)+cComercial, Space(10)+"Fecha: "+dtoc(date()) ;
FOOTER OemtoAnsi("P gina: ")+str(oReport:nPage,3) CENTERED ;
PREVIEW CAPTION OemToAnsi("Listado del ALMACEN general")
oReport:nTitleUpLine := 1 // Grosor Cabeceza Columnas
oReport:nTitleDnLine := 1
COLUMN TITLE OemToAnsi("C¢digo") DATA ARTICULO->CODIGO
COLUMN TITLE "Artículo" DATA LEFT( ARTICULO->NOMBRE, 30 )
COLUMN TITLE "Stock" ;
DATA ARTICULO->EXSISTENCI ;
RIGHT ;
PICTURE PictDecimales(7)
COLUMN TITLE "Precio de Coste" ;
DATA ARTICULO->PRECIOCOST ;
RIGHT ;
PICTURE PictDecimales(8)
COLUMN TITLE "Valor" ;
DATA (ARTICULO->PRECIOCOST * ARTICULO->EXSISTENCI) ;
TOTAL ;
RIGHT ;
PICTURE PictDecimales(11)
END REPORT
ACTIVATE REPORT oReport ;
ON STARTPAGE BmpListados( oReport, tLogo )
oFont1:End()
oFont2:End()
Re: error interno FWH
Posted:
Sat Feb 09, 2013 2:16 pm
by Bayron
Hola Elvira,
A mi me pareciera como que tLogo no está siendo definido...
Podrías verificar eso???
Re: error interno FWH
Posted:
Sat Feb 09, 2013 3:56 pm
by elvira
Hola,
Sí está definido antes. No puse las variables locales, pero sí que está.
Y el error no se refiere a variable no definida. Alguna vez aparece esporádiamente el error, si bien normalmente el listado funciona OK.
Es algo de la clase que se me escapa.
Muchas Gracias.
Re: error interno FWH
Posted:
Mon Feb 11, 2013 1:46 pm
by Antonio Linares
Elvira,
Tu aplicación crea una ventana principal ? Es necesario que exista
Re: error interno FWH
Posted:
Mon Feb 11, 2013 2:41 pm
by elvira
Sí, efectivamente.
El código funciona el 98% de las veces.
A veces se produce el error señalado. ¿Qué puede suceder por favor Master?.
Muchas gracias.
Re: error interno FWH
Posted:
Mon Feb 11, 2013 3:40 pm
by Bayron
Yo he estado experimentando pérdida de recursos al usar las versiones más recientes de Harbour o xHarbour... Podría ser este el caso tuyo...???
Yo tuve que estancarme a usar xHarbour 1.2.1 Rev 9388 para evitar perderlos...
Acaso usas este Bitmap desde Recursos???? Que version de (x)Harbour usas???
Re: error interno FWH
Posted:
Mon Feb 11, 2013 4:12 pm
by fgondi
Es cierto?
ha mas gente le ha pasado y lo ha podido solucionar pasando a versiones anteriores de xHarbour?
Por cierto,
Yo si cargo bitmaps desde recursos y uso la última versión de xharbour distribuida con fwh
Re: error interno FWH
Posted:
Mon Feb 11, 2013 4:19 pm
by Antonio Linares
No creo que tenga nada que ver con Harbour ó xHarbour, por favor centremonos en el error indicado y para pruebas de xHarbour iniciemos otra conversación, gracias
En la clase TPreview se encuentra este código:
- Code: Select all Expand view
METHOD Activate() CLASS TPreview
ACTIVATE WINDOW ::oWnd MAXIMIZED ;
ON RESIZE ::PaintMeta() ;
ON UP ::VScroll( GO_UP ) ;
ON DOWN ::VScroll( GO_DOWN ) ;
ON PAGEUP ::VScroll( GO_UP, GO_PAGE) ;
ON PAGEDOWN ::VScroll( GO_DOWN, GO_PAGE) ;
ON LEFT ::HScroll( GO_LEFT ) ;
ON RIGHT ::HScroll( GO_RIGHT ) ;
ON PAGELEFT ::HScroll( GO_LEFT, GO_PAGE ) ;
ON PAGERIGHT ::HScroll( GO_RIGHT, GO_PAGE ) ;
VALID ( ::oWnd:oIcon := nil ,;
::oFont:End() ,;
::oMeta1:End() ,;
::oMeta2:End() ,;
::oDevice:End() ,;
::oHand:End() ,;
::oWnd := nil ,;
If( Empty( ::oImageList ),, (::oImageList:End(), ::oImageList := nil ) ),;
::lExit := .t. ,;
.t. )
En el VALID se intenta acceder al dato oIcon de ::oWnd. Si por alguna causa ::oWnd fuese nil, se genera ese error.
Una solución rápida sería cambiar esto en el código anterior:
If( ::oWnd != nil, oWnd:oIcon := nil, nil )
Re: error interno FWH
Posted:
Mon Feb 11, 2013 6:23 pm
by elvira
Antonio,
Yo siempre tengo una WNDMAIN del programa principal. En ella tengo un Menú, y en dicho menú está el listado.
Normalmente el código funciona bien. En ese 2% falla. También a otros les sucede lo mismo.
En mi caso, doy fe que Wndmain está activa y funcionando.
¿Por qué alguna vez entonces FWH entiende que WndMain no existe?.
¿Algo del motor interno de Fivewin?.
Mil gracias por tu atención.
Re: error interno FWH
Posted:
Mon Feb 11, 2013 9:28 pm
by Antonio Linares
Supongo que en ese 2% la data oWnd ha sido asignada a nil, pero la VALIDación aún no ha terminado, posiblemente un SysRefresh() eliminase esos casos. Algún proceso ha podido consumir un tiempo algo excesivo.
En todo caso, la modificación que te he indicado, debería evitar ese 2% de errores que comentas
Re: error interno FWH
Posted:
Tue Feb 12, 2013 4:02 am
by carlos vargas
me parece que ::oWnd : NIL debe se la ultima linea antes del true final.
::oImageList es un objeto que por lo general esta asociado a un hWnd, y pienso en este caso que debe estar usando el oWnd:hWnd , y al ser oWnd ya nil, puede reventar.
- Code: Select all Expand view
VALID ( ::oWnd:oIcon := nil ,;
::oFont:End() ,;
::oMeta1:End() ,;
::oMeta2:End() ,;
::oDevice:End() ,;
::oHand:End() ,;
If( Empty( ::oImageList ),, (::oImageList:End(), ::oImageList := nil ) ),;
::oWnd := nil ,;
::lExit := .t. ,;
salu2
Re: error interno FWH
Posted:
Tue Feb 12, 2013 9:12 am
by elvira
Antonio,
Ya he dado con la causa del problema, resulta que los usuarios cierran la WNDMAIN con el REPORT abierto.
¿Hay alguna forma de evitarlo?.
Muchas gracias.
Re: error interno FWH
Posted:
Tue Feb 12, 2013 9:20 am
by Antonio Linares
Elvira,
Usa un VALID en la ventana principal, que devuelva .F. cuando el reporte esté mostrado