by chuhuaca » Thu Dec 15, 2005 9:33 pm
Antonio, hice lo que me sugeriste, y cambio el error en la siguiente linea con la siguiente pinta:
... en la linea donde reemplazo __CLASSINS() por la que me pasaste __CLSINST()
ERROR:
Objects.ch(34) E0001 Statement not allowed outside of procedureor function
Aca esta el codigo que tiene el Objects.ch de clipper que modifique con la sentencia que vos me pasaste.
#xcommand DEFAULT <uVar1> = <uDefaultValue1> ;
[, <uVarN> = <uDefaultValueN> ] => ;
<uVar1> = If( <uVar1> == nil, <uDefaultValue1>, <uVar1> ) ;;
[ <uVarN> = If( <uVarN> == nil, <uDefaultValueN>, <uVarN> );]
#xcommand CLASS <cClassName> [ FROM <cSuperNam1>] [ ,<cSuperNamN> ] => ;
function <cClassName>() ;;
static nClassHandle, abParents ;;
if nClassHandle == nil ;;
ClsNew( <"cClassName"> , ;
abParents := { [ { || <cSuperNam1>() } ] ;
[,{ || <cSuperNamN>() } ] } ) ;;
[#define PARENT <"cSuperNam1">]
#xcommand DATA <cVar> READONLY => ClsAddData( Upper( <"cVar"> ), 1 )
#xcommand DATA <cVar1> [,<cVarN>] => ;
ClsAddData( <"cVar1">, 0 ) ;
[; ClsAddData( <"cVarN">, 0 ) ]
#xcommand METHOD <cMethodName>( [<uParms,...>] ) => ;
ClsAddMethod( Upper( <"cMethodName"> ), ;
{ | Self [, <uParms> ] | <cMethodName>( Self [, <uParms> ] ) } )
#xcommand METHOD <cMethodName>( [<parms,...>] ) VIRTUAL => ;
ClsAddMethod( Upper( <"cMethodName"> ), { || nil } )
#xcommand ENDCLASS => ;
nClassHandle = nClsMake() ;;
end ;;
// return __ClassIns( nClassHandle )
return __ClsInst( nClassHandle )
#xtranslate :: => Self:
#xtranslate METHOD <cClassName>::<cMethodName>( [<uParms,...>] ) => ;
static function <cMethodName>( Self[, <uParms>] )
#xtranslate ::Parent:<method>([<uParms,...>]) => ;
Eval( bClsMethod( Upper( PARENT ), Upper( <"method"> ) ), ;
Self [,<uParms>] )