home *** CD-ROM | disk | FTP | other *** search
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ o:Clip ║
- ║ An Object Oriented Extension to Clipper 5.01 ║
- ║ (c) 1991 Peter M. Freese, CyberSoft ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- Version 1.01 - November 8, 1991
-
- Change History
-
-
- [08/31/91] Version .90
-
- Changed the syntax of the method definition to use '=' instead of comma
- as a delineator between <MethodName> and <MethodUDF>. This was done to
- allow greater compatability with Class(y) at the advice of Anton van
- Straaten. This new syntax also allows multiple method definitions to be
- comma separated, i.e., the follow is now legal:
-
- CLASS Foo
- METHOD New=FooNew, Bar=FooBar, Save, Debug
- VAR ......
- ENDCLASS
-
- Removed the self() function. References to self() will now use the
- QSELF() function contained in Plankton. This reduces the code overhead
- by a slight amount, and should improve performance as well, since
- QSELF() is a Plankton operator rather than an external function. I
- would have used this function to begin with, but I was unaware of its
- existance until it was pointed out to me by Anton.
-
- Renamed some of the internal symbols to use 'IVAR' and 'SIVAR' instead
- of 'OVAR' and 'SOVAR' to be consistent with current buzzwords.
-
- There is still a problem with the debugger when using 'mangled' method
- names (i.e., MethodUDF <> MethodName). The debugger insists that the
- MethodName function does not exist. I'm still stumped on this one, but
- I have a feeling the problem may be in one of the Clipper __Class
- functions....
-
-
- [09/01/91] Version .91
-
- Eliminated the need to reference Self as a function - it is no longer
- necessary to use parens. This was done to allow compatability with
- Class(y) and SuperClass. This may require doing a global replace for
- "self()" -> "self" on method functions, but other than that, should not
- cause any problems.
-
- Removed the macro call in __DefineClass for the parent class function
- call. This call ensures that a new class's parent class definition
- function has been called before the subclass's class definition
- function. This is now accomplished via a code block, which should be
- faster as well as require less overhead, but requires a little more
- trickery on the preprocessor's part. Notice that an interim command
- state is necessary in order to convert the ParentClass to a function and
- then blockify.
-
-
- [09/21/91] Version .92
-
- Added the ability to call an overridden method. This is accomplished by
- preceding the desired message with a "Parent" or "Super" message. For
- example, to call an overridden New method, we would use:
-
- obj:Parent:New
-
- Messages should not be chained after calling an overridden method, since
- they will not return a proper copy of self. This was done to allow
- Methods to return values other than self if desired.
-
-
- [10/15/91] Version 1.00
-
- "Official release". Changes in this version were basically cosmetic,
- and involved an expanded doc file, and cleaning up the code for
- readability.
-
-
- [11/08/91] Version 1.01
-
- Modified the code to call an overridden parent method. This fixes an
- infinite recursion bug that would occur if calling a parent method which
- called a parent method.
-