Macro: REGISTER_OBJECT

Module location: FMACDD line 10481 (view source)

changes: Check that object name is not already a global/class function Add alternate access syntax @Name check that the name is not an internal function

  #IFDEF UI.EXISTS
  #ELSE
    USE UI
  #ENDIF

  #IF ( (!Zl & 1)=0)
    #IFSAME FN$!1  __F__
      #ERROR 4330 !1 is an internal function name
    #ENDIF
  #ENDIF

  // Check that object name is not already a global or class function.
  #IFDEF GET_!1
    #IF (GET_!1<$40000001)
      #IF (GET_!1<0)
        #ERROR 4332 !1 Already defined as a global function
      #ELSE
        #ERROR 4332 !1 Already defined as a function/Property
      #ENDIF
    #ENDIF
  #ELSE
    #REPLACE GET_!1 |CI!ZH
    #FREG GET_!1 RETURNS INTEGER
    // register additional object access methods
    #IFDEF USE$NEAR$OBJECT
      #REPLACE @!1 (Obj(Get_!1))    // for @ObjName   syntax near/global/default
      // These are here for test purposes right now.
      //#REPLACE !1.SELF (!1(current_object)) // for ObjName.self  syntax = obj(self)
      //#REPLACE !1.NEAR (NearObj(Get_!1))    // for ObjName.Near  syntax near
    #ELSE
      #REPLACE @!1 (!1(current_object))
    #ENDIF
  #ENDIF