Mindaugas Kavaliauskas wrote:
is there a way to call function as a method? Ex.:

Hi,


I found one, it's HB_EXECFROMARRAY(), but it's GPF. Here is the whole idea:

#include "hbclass.ch"

PROC MAIN()
   LOCAL hValue := HashObject()
   hValue:VAR1 := 123.45
   hValue:VAR2 := DATE()
   ? hValue:VAR1, hValue:VAR2

   // Let's create method for HashObject()
   hValue:PrintVar1 := @PrintVar1()
   hValue:PrintVar1()
RETURN


STATIC PROC PrintVar1()
   ? QSELF():VAR1
RETURN


CREATE CLASS HashObject
   VAR __hash INIT {=>}
   ERROR HANDLER OnError()
ENDCLASS

METHOD OnError( ... ) CLASS HashObject
LOCAL cMessage := __GETMESSAGE(), xValue
   IF PCOUNT() == 1 .AND. LEFT( cMessage, 1 ) == "_"
      RETURN QSELF():__hash[ SUBSTR( cMessage, 2 ) ] := HB_PVALUE( 1 )
   ENDIF
   xValue := QSELF():__hash[ cMessage ]
   IF HB_ISSYMBOL( xValue )
      RETURN HB_EXECFROMARRAY( QSELF(), xValue, { ... } )
   ENDIF
RETURN xValue



Regards,
Mindaugas

_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to