Macro: OBJECT

Module location: FMAC line 10779 (view source)

changes: 1. Allow New syntax: Property type Name {dflt} public|private is optional 2. Check placement as follows: 2.1. Must be in class or object 2.2. Cannot be in a child object defined by a class 2.3. If in class, must be in procedure (constructor) 2.4. If in object, must not be in procedure. 3. Check for Property Name conflicts (Get_name conflict) 3.1. If defined as object access - error 3.2. If defined as global method - error 3.3. If defined with different param list - error (already does this) Changes: 1. No_image is optional if windows (always provided by compiler) 2. If within class, s/b within a class (in df$object)

  #IFDEF IS$WINDOWS
    // If windows we can check for no_image and if it is not presented then
    // we will provide a no_image argument. Therefore you should NEVER need to use
    // No_image with windows.
    #IF (!0<5)                // if no image try to aquire one
      #IFDEF !1.N             // if image exists with object name, use that
         OBJECT !1 !2 !3 !4 !1
      #ELSE
         OBJECT !1 !2 !3 !4 NO_IMAGE // else use no_image
      #ENDIF
    #ELSE
      #IFDEF !5.N                               // if passed a valid image or
         DF$OBJECT !1 !2 !3 !4 !5 !6 !7 !8 !9   // no_image use them. Else add
      #ELSE                                     // the no_image parameter.
        #IFSAME !5 NO_IMAGE
           DF$OBJECT !1 !2 !3 !4 !5 !6 !7 !8 !9
        #ELSE
           DF$OBJECT !1 !2 !3 !4 NO_IMAGE !5 !6 !7 !8 !9
        #ENDIF
      #ENDIF
    #ENDIF
  #ELSE
    // If character mode no_image must be explicitly provided (as it has always been).
    // we cannot use the no_image replacement because it does not work with dynamic
    // visual objects (like edits).
    #IF (!0<5)                // if no image try to aquire one
      DF$OBJECT !1 !2 !3 !4 !1
    #ELSE
      DF$OBJECT !1 !2 !3 !4 !5 !6 !7 !8 !9
    #ENDIF
  #ENDIF