This is going to get interesting, at least as I attempt to describe what the heck I'm doing here. I have an Outter Object Class, it contains all the information handling for managing the Main parameters for the object's structure, in addition to managing an array of Inner Objects, however, to be fair, these are "Mid Level" objects. Each mid level object as all the code for managing the group's parameters, in addition to having "pass through" calls to the object array it manages. The final Inner Object is the actual data handler for the system. So, I have an array of objects, each would contain an array of objects. It looks really complex, but currently it looks like the best way to handle the data because the data is not linear in nature.
One FoxClass contains array of FoxShapes.
Each FoxShape contains an array of FoxFrames.
For example, I can get a data element with:
TYPE SET lVariable = FoxClass.FrameHeader(ShapeIndex, FrameIndex)
In FoxClass, it validates the desired FoxShapes(ShapeIndex) is valid, and it returns:
And likewise in the FoxShapes class, it gets the information from the FoxFrame:
And of course, all the FoxFrame class has to do is return the information:
Now, my problem; I want to get the WHOLE FoxFrame object from the system:
And the compiler gives me a syntax error:
The caret (^) is where the compiler puts the cursor when it aborts, it's right between the ) and the period. So, what am I overlooking? Am I going to need to use a global variable to pass back my inner FoxFrame?
One FoxClass contains array of FoxShapes.
Each FoxShape contains an array of FoxFrames.
For example, I can get a data element with:
TYPE SET lVariable = FoxClass.FrameHeader(ShapeIndex, FrameIndex)
In FoxClass, it validates the desired FoxShapes(ShapeIndex) is valid, and it returns:
Code:
PROPERTY GET FrameHeader(BYVAL ShapeIndex AS LONG, BYVAL FrameIndex AS LONG) AS FOXFRAMEHEADER LOCAL FrameReturn AS FOXFRAMEHEADER FrameReturn.ShapeFormat = -1 IF ShapeIndex < FileHeader.NumShapes THEN _ IF ISTRUE ISOBJECT(Shapes(ShapeIndex)) THEN _ TYPE SET FrameReturn = Shapes(ShapeIndex).FrameHeader(FrameIndex) PROPERTY = FrameReturn END PROPERTY
Code:
PROPERTY GET FrameHeader(BYVAL FrameIndex AS LONG) AS FOXFRAMEHEADER LOCAL FrameReturn AS FOXFRAMEHEADER FrameReturn.ShapeFormat = -1 IF FrameIndex <= UBOUND(Frames) THEN _ IF ISTRUE ISOBJECT(Frames(FrameIndex)) THEN _ TYPE SET FrameReturn = Frames(FrameIndex).FrameHeader PROPERTY = FrameReturn END PROPERTY
Code:
PROPERTY GET FrameHeader() AS FOXFRAMEHEADER PROPERTY = FrameHeader END PROPERTY
Code:
' in FoxClass PROPERTY GET FrameObject(BYVAL ShapeIndex AS LONG, BYVAL FrameIndex AS LONG) AS FOXFRAMEHANDLER IF ISTRUE ISOBJECT(Shapes(ShapeIndex)) THEN _ PROPERTY = Shapes(ShapeIndex).FrameObject(FrameIndex) END PROPERTY ' in FoxShape PROPERTY GET FrameObject(BYVAL FrameIndex AS LONG) AS FOXFRAMEHANDLER IF FrameIndex <= UBOUND(Frames) THEN _ PROPERTY = Frames(FrameIndex) END PROPERTY
Code:
Error 477 in C:\PROGRAM FILES\PATCH MAKER\FOXEDIT\FOXCLASS.BAS(201:046): Syntax error Line 201: PROPERTY = Shapes(ShapeIndex).FrameObject(FrameIndex) PROPERTY = Shapes(ShapeIndex).FrameObject(FrameIndex) ^
Comment