Page 1 of 2

error interno FWH

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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