hace poco baje el harbour del svn reconstrui los binarios y las librerias, y recompile mis lib con este nuevo harbour.
esto lo he hecho muchisimas veces sin problemas.
pero ahora algo ha cambiado, yo uso un tget modificado (asuntos de comodidad con los colores) por lo que la clase tget
la integro directo desde mi proyecto (esto tambien lo he hecho muchas veces sin problemas), esta fallando en el metodo initiate
la linea que indica
Super:Initiate( hDlg )
revienta con el error,
Error description: Error BASE/1003 No existe la variable: SUPER
Stack Calls
===========
Called from: source\tget.prg => TGET:INITIATE( 585 )
Called from: => __OBJSENDMSG( 0 )
Called from: .\source\function\HARBOUR.PRG => OSEND( 210 )
Called from: .\source\function\HARBOUR.PRG => ASEND( 178 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:INITIATE( 630 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 870 )
Called from: => DIALOGBOX( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 270 )
revisando que ha cambiado en harbour que pudiera provocar este error, me encuentro con esto:
2013-01-10 23:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbapicls.h
* harbour/src/vm/classes.c
+ added new internal C function:
void hb_objCloneTo( PHB_ITEM pDest, PHB_ITEM pSource,
PHB_NESTED_CLONED pClonedList );
it copies object or clone it if class overloaded clone operation.
; TODO: add support for user defined class clone operation
* harbour/include/hbapiitm.h
* harbour/src/vm/itemapi.c
* changed returned type of hb_itemCloneTo() to void
* harbour/src/vm/itemapi.c
* use hb_objCloneTo() in hb_itemClone*() functions.
* harbour/src/vm/arrays.c
* use hb_objCloneTo() in array/hash clone code.
* harbour/src/vm/arrayshb.c
! fixed return values in AEVAL() and ACOPY() when array
is passed by reference.
* harbour/src/rtl/tclass.prg
* harbour/src/vm/classes.c
* declare :SUPER and :__SUPER messages as non virtual ones.
Now ::SUPER and ::__SUPER messages executed in object method
returns casting to 1-st super object of the class in which
executed method was defined.
* harbour/include/hbclass.ch
* removed xtranslations for SUPER(): - this workaround for
missing non virtual messages in some Clipper OOP implementations
was breaking valid code which tried to use real :SUPER message
and made SUPER reserved word, i.e. it was not possible to create
code like:
LOCAL super := ::parent2
? super:v1, super:v2
Now this hack is not longer necessary and :SUPER is non virtual
massage in Harbour.
INCOMPATIBLE: If someone has some code like:
SUPER():MSG()
SUPER( PARENT ):MSG()
then please change it to:
::SUPER:MSG()
::PARENT:MSG()
si uso el "viejo" harbour o xharbour la cosa esta sin problemas.
salu2
carlos vargas