Page 2 of 2

PostPosted: Tue Sep 09, 2008 3:34 pm
by Rossine
Funcionou perfeito agora :D

Gracias Quique e Antonio,

Rossine.

PostPosted: Thu Sep 11, 2008 7:42 pm
by quique
Anotnio ¿que necesito hacer para que funcione esto? marca error en el ultimo msgInfo()

Code: Select all  Expand view
#INCLUDE "hbclass.CH"

function main
   miTWindow()
   funSwap( @time(), @miTime() )
   msgInfo( time() )
   funSwap( @tWindow(), @miTWindow() )
   msgInfo( tWindow():prueba )
   msgInfo( tMdiClient():prueba )
return nil

function miTime()
return "Hola"

class miTWindow from tWindow
   data prueba
endClass

#pragma BEGINDUMP

HB_FUNC( FUNSWAP )

{

   PHB_SYMB pFirst = ( PHB_SYMB ) hb_parptr( 1 );

   PHB_SYMB pLast  = ( PHB_SYMB ) hb_parptr( 2 );



   if( pFirst && pLast )

   {

      pFirst->value.pFunPtr = pLast->value.pFunPtr;

   }

}

#pragma ENDDUMP

PostPosted: Thu Sep 11, 2008 9:34 pm
by Antonio Linares
Quique,

Por lo visto la clase derivada sigue usando el puntero antiguo, de alguna forma.

PostPosted: Thu Sep 11, 2008 9:56 pm
by quique
Sip, por eso la consulta ¿hay manera de solucionar ese problema?

PostPosted: Thu Sep 11, 2008 10:08 pm
by Antonio Linares
Quique,

Debe estar usandose el puntero antiguo, el cual debe estar almacenado en otro lugar tambien.

Habria que revisar el modulo de classes en C de Harbour/xHarbour y localizar en donde esté ese puntero guardado.