-----------------------------------------------------------------------
OOBJECT CLASS Creation Library
Version 2.00
An object oriented extension to Clipper 5.x
(c) 1997-98 , ASCO Tours Aegina
-----------------------------------------------------------------------
Contents:
---------
1. Disclaimer
2. What is this ???
3. Basic features:
4. Overview :
a. Objects and oObject
b. Inheritance issues
c. Variable assignment
d. Declaring methods
e. Inline/Block
f. Method aliasing
g. Internal methods and instance variables
h. Direct modification of instance variables (early binding)
i. oObject and the Debugger-STATIC Methods-Reusable Method Functions
5. Commant Syntax
*- Please read the Whats.New file. Some new features may require you to
*- modify ver.1a code (like the NOSELF clause of INLINE statements)
*- Also read notes.txt for some quick tips and tricks.
DISCLAIMER:
----------------
This is the work of Manos Aspradakis. It is free software and you are
free to use it in your applications without any restrictions whatsoever;
it is also user supported software and you are encouraged to enhance and
improve in any way you see fit. I expect no payment for this work but I
will also take no responcibility for any damage you may think it caused
whatsoever. However, if you think that some credit is in order, send me
a postcard from your country to the following address:
MANOS ASPRADAKIS
ASCO Tours Aegina
18010, Aegina Island
GREECE
Also, don't hesitate to direct your questions or suggestions to me :
eMail: [email protected]
WHAT IS THIS ???
---------------------
After a couple of years of playing around with class libraries, I came to
the conclusion that the products one can find either on the net as
freeware, shareware, cardware etc., such as oClip, ooClip, Classic or the
commercial products such as Class(y), TopClass* or Objects** (I, II, III),
were either very simplistic, or very complicated or full of bugs, or
added 200,000 bytes to my programs, or sloooowww, or expencive, or
whatever.
* TopClass is the OOPs engine of Clip4Win, written by John Skelton. As a
registered user of C4W I can say that TopClass is the most stable OOPs
platform today. However, it is not available w/out the C4W package (at
least I haven't seen it sold separately) and I don't really like the VO
compatibility. Thank you John for a great product - I hope you liked the
stamps I sent in with my registration form...
** Objects is written by Antonio Linares and has become a very stable and
lightning fast OOPs engine. Objects is included in the Fivewin package.
Still, not half as stable as TopClass.
The only solution I found worth working with, was oClip by Peter M.
Freeze, still alive and kicking in 1997 thank you very much !!! Small
size, fast execution and simple syntax made it a wonderful product to
work with and to get into the exciting world of OOP, plus it was
completely FREE and provided full source code. However, oClip took a
very minimalistic approach to the problem and not a very elegant one at
that, plus the only improvement to that project was oOClip that didn't do
much for me and did not include any source to correct the (obvious)
errors, plus, it asked money for it - see comment below - however,
oOClip, gave me the idea of method aliasing that was improved in order to
provide better inheritance.
So, since I hate spending money on software that I can write my self, I
decided to write my own class library and came up with this little
monster, oObject.Lib
The library was written in less than a week and optimized for about a
month before going public, so there might be bugs lurking somewhere in
there. However I have used the library to update two of my commercial
programs - tourist industry related - and they seem quite steady and well behaved for the past two weeks ( 6 months in 2.B ); so there you have it.
The library was written using the OOP way. This means that the class
creation function is a true Clipper object of class _OBJECT_. Just
take a look to the header file to see how elegant this solution really
is. The amount of true code in the header file is very small and
accomplishes too mush. Compile one of the example programs with the /p
switch to see what happens "bellow the surface".
-------------------------------------------------------------------------
By the way, the _OBJECT_ class was written using my very own ClipOO.ch
header file (included also here) that you can use to create classes
WITHOUT any external libraries or .OBJs. You can write very simple or
very complex classes using only this header file but you can not inherit
from them - only subclass them. It is a very fast and clean way of
writing those simple classes, elegantly, without any extra overhread and
also a good example of how far one can take Clipper's preprocessor
without being hurt <g>. The manual, ClipOO.NGT was ripped from my Norton
Guides text directory and is ready to compile & link in NG format.
-------------------------------------------------------------------------
And the best thing is its FREE. I have taken so much from the net, the
usegroups and the web in the last years that I feel its about time I gave
some back and with interest, so I include the full source code to the
library (1) hoping that it will be of some use to new users (if there is such a thing now that CA left us out to dry) (2) to get some feedback,
corrections, improvements or comments from the old timers and turn this
project into real user supported software and (3) because I'm not ashamed
of my source code.
--------- comment -------------------------------------------------------
I just hate it when I download a file and only find an .OBJ or a small
.LIB and a .DOC saying "give me 10 bucks to get the source for my lame UDF". To those people I have one thing to say:
VALKYRIE IS A GREAT PRODUCT...
--------- end comment ---------------------------------------------------
I always thought that programmers of all people should share and assist
their own, so I let my source free and I don't worry about it anymore <g>
My thanks go to Peter M. Freeze who's work made me a little wiser and
showed me the way to OOP when there was nothing else around. I took the
liberty of using his .ASM files, slightly modified for the creation of
oObject.lib
Also to Phil Barnett who's site is perhaps the most valuable resource on
the net and whose dedication to the Clipper community make HIM also one
of our most valuable resources. Here's to ya Phil...