Only one more hint: if you want access hashes with : like oHash:cName,
you need compile Harbour with:
set HB_USER_CFLAGS=-DHB_HASH_MSG_ITEMS

Instead of recompiling whole Harbour code I suggest to simply create
custom HASH class with such functionality, f.e.:

   #include "hbclass.ch"
   PROC MAIN()
      LOCAL hValue

      ASSOCIATE CLASS _Hash         WITH TYPE Hash

      hValue := {=>}
      hValue:VAR1 := 123.45
      hValue:VAR2 := DATE()
      ? hValue:VAR1, hValue:VAR2

   RETURN

   CREATE CLASS Hash INHERIT __HBHash FUNCTION _Hash
      ON ERROR FUNCTION XHB_HASHERROR()
   ENDCLASS

Hi,


or if you do not want to pollute functionality of all hashes, you can use HashObject() below for one hash that needs object functionality:

#include "hbclass.ch"

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

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

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


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

Reply via email to