[comp.lang.pascal] Object libraries

dmurdoch@poppy.uwaterloo.ca (Duncan Murdoch) (08/31/90)

In article <18994@dime.cs.umass.edu> eli@smectos.CS.UMASS.EDU (Eli Brandt) writes:
> Has anybody seen a PD object library for Turbo Pascal 5.5?  I've been coding stacks, b-trees, "mouse" 
>objects, and so forth, but it would take me a loooong time to write everything I need.  Even shareware
>would be nice, since I'm a bit hesitant to shell out 150 dollars for some pig-in-a-poke TPU file which
>I will undoubtedly have to spend another $100 to upgrade when I go to v6.0, assuming the company in still
>in business.  I'm sure *someone* must have written one...

I don't know of any PD ones.  "Turbo Technojocks Toolkit" has promised one for
later this year, as shareware.  I was unimpressed with their library when
I looked at it last year; I don't know what current or future versions will be
like.

Your best bet is the Object Professional library, from Turbopower.  Typical mail
order price is $US 119, from Programmer's Connection(800-336-1166 in USA, 
800-225-1166 in Canada, 216-494-3781 elsewhere).  It comes with full source code
and lots of tools (with full source for them, too).  The most negative thing 
about it is its size:  it takes about 10 Megs of disk space to install it, and
if you use any of the high level objects (data entry screens, text editor,
etc.) your programs really bloat, and TP5.5 has trouble linking them.  (It will
link them, but it's slow, and you have to use TPC, not the IDE.)

Here's a list of the units provided (cut from the memory resident help utility,
POPHELP):

                     Op8087              OpAbsFld
 OpAsciiz            OpBcd               OpBrowse
 OpCal               OpCalc              OpClone
 OpCmd               OpColor             OpCrt
 OpDate              OpDevice            OpDir
 OpDos               OpEdit              OpEditor
 OpEms               OpEnhKbd            OpEntry
 OpErrHan            OpExec              OpExtMem
 OpFEdit             OpField             OpForm
 OpFrame             OpHelp              OpInline
 OpInt               OpLArray            OpMacEd
 OpMacro             OpMemo              OpMenu
 OpMouse             OpPick              OpPrint
 OpPrnLow            OpQkRef             OpReplay
 OpRoot              OpSEdit             OpSelect
 OpSort              OpStrDev            OpString
 OpSwap              OpSwap1             OpTsr
 OpWindow

and a list of the object hierarchy from the low-level unit, OpRoot:

Root
  PointerStack
  StaticQueue
  SingleListNode
  SingleList
  DoubleListNode
  DoubleList
    CircularList
  BitSet
    LargeBitSet
  StringDict
    StringSet
  StringArray

The ones below have to do with streams - all objects can be written to streams.
  DirEntry
IdStream
  DosIdStream
    BufIdStream
      Library
  MemIdStream
    MemLibrary

Because the library is so big, I'd hesitate to recommend it as a general purpose
library.  Turbo Professional from the same company is better for that.  However,
if you want to use OOP, and don't want to program all the low level stuff,
I'd buy it.  Treat all the extras as a bonus.

I have no connection with Turbopower, other than as a satisfied customer.

Duncan Murdoch
dmurdoch@watstat.waterloo.edu