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