Page 1 of 1

Class: 'NIL' has no exported

Posted: Mon Jun 12, 2006 3:21 pm
by goosfancito
Estimados,

por que al ejecutar el programa me tira este error:
Error description: Error BASE/1004 Class: 'NIL' has no exported method: SETFOCUS
Args:

Stack Calls
===========
Called from SETFOCUS(0)
Called from (b)MAIN(118)
Called from TDIALOG:INITIATE(0)
Called from TDIALOG:HANDLEEVENT(0)
Called from DIALOGBOX(0)
Called from TDIALOG:ACTIVATE(0)
Called from MAIN(118)

Code: Select all

   oDlg:= oDlgEnlace( oBrw, oTextos, oBtns, oBmp, oFuentes )

   //----------( Acción del botón )----------

   ACTIVATE DIALOG oDlg CENTERED ON init (;
      oBrw: SetFocus(),;
      oBrw: ResetBarPos(),;
      oBrw: UpStable(),;
      oBrw: Reset(),;
      oBrw: Refresh(),;
      oBrw: gobottom(),;
      BuildTimer( IF ( aConfiguracion[ 01 ] < 17, 0x64, 0xB4 ),;
      aConfiguracion, aProductos, aSurtidores, aSetVars, oDlg );
       )

   DBCloseAll()

   AEval( oFuentes, { | aFuentes | aFuentes:END( ) } )

RETURN ( NIL )

//------------------------------------------------------------------------------

STATIC FUNCTION BuildTimer( nComando, aConfiguracion, aProductos, aSurtidores, aSetVars, oDlg )
   MEMVAR oTimer

   DEFINE Timer oTimer Interval Val( aSetVars[ 03 ] );
      Action ( NuevasCargas( nComando, aConfiguracion, aProductos, aSurtidores, aSetVars ) ) OF oDlg

   ACTIVATE timer oTimer

   RETURN ( NIL )

//------------------------------------------------------------------------------
Gracias.

Posted: Mon Jun 12, 2006 4:25 pm
by RenOmaS
porque oBrw es Nil :roll:


Saludos :shock:

Posted: Mon Jun 12, 2006 7:37 pm
by goosfancito
Gracias,

Pero me gustaria ver la solucion, ya que OBRW aparentemente lo estoy creando, es mas cuando ejecuto el programa el obrw se arma:

Code: Select all

oDlg:= oDlgEnlace( oBrw, oTextos, oBtns, oBmp, oFuentes)

Posted: Mon Jun 12, 2006 8:44 pm
by RenOmaS
Tendrias que publicar mas codigo..

Saludos

Esto seria asi como AUTO-RESPONSED

Posted: Tue Jun 13, 2006 2:11 pm
by goosfancito
Amigos,

Primeramente quiero agradecerle a mi amigo de Williams (wmormar) porque me ayudo a solucionar el inconveniente posteado.

Voy a hacerlo sencillo y me gustaría recibir alguna explicacion "Técnica" al respecto porque realmente perdí mucho tiempo buscando solución.

Si vamos a utilizar una declaracion de este tipo:

Code: Select all

function main()
    local oBrw
    ...
Al momento de enviar oBrw como dato en una funcion se la debe pasar como referencia.

Code: Select all

oDlg:= CrearBrowser( @oBrw )
En cambio, cuando se utiliza un array de esa variable:

Code: Select all

function main()
    local oBrw:= array( 01 )
    ...
Al momento de enviar oBrw como dato en una funcion la cual crea el browser, tenemos que enviarlo asi:

Code: Select all

oDlg:= CrearBrowser( oBrw )
Alguien podría explicarme porque?
Gracias.

Re: Esto seria asi como AUTO-RESPONSED

Posted: Tue Jun 13, 2006 2:38 pm
by thefull
Es muy simple.

Por que , un array, SIEMPRE es pasado por referencia ;-)

Ah!!! ¿ como se te quedo el cuerpo? ....jejeje