|
Click to view full size:
|
Borland C++ ObjectWindows Library 2.0
Each link goes to a separate page with a more complete program description, a
code listing, and, if the project is large, a link to download its zip file.
I've been surprised to discover how easy it is to convert old Borland code to
Microsoft Visual C++. Text substitutions in the code are often all that's
required to convert Borland's BIDS TArray classes to STL. Screen elements like
menus must be built from scratch in the VCPP design interface, but it's easy.
The hard part was designing the menus in the first place, and that's already
done. Learning the new .NET Framework equivalents of the OWL methods can be
difficult and time-consuming, but the results are very good and the .NET methods
are powerful.
I've done a few
project conversions so far, including my standard library and one OWL
program, the neural network. If you have your own OWL code to convert, comparing
the two versions might provide you with tips how to proceed.
Utility classes
-
SDib extension of the
Borland OWL TDib class
- An extensive derivation (for 256-color DIBs only) of the Borland OWL TDib class, adding palette manipulation functions, support for color cycling, flip
vertical and horizontal, and very fast methods
for getting and setting pixel color values.
-
-
SDibWindow
class (manages an SDib for an application)
- Derived from TWindow, this class contains an SDib plus arrays for
holding lists of file names, including color map files, plus the menu items
and event handlers needed to implement the features of the SDib, plus an
IdleAction function that handles color cycling, plus the variables that
control the behavior of a graphics application (such as turning color
cycling on and off or changing the direction), plus the dialogs for loading
and saving color map files, etc etc! Most of the "wow" features of some of
my graphics applications are the result of their using an SDibWindow as the
client window in the main window.
-
-
SDDEApplication and related DDEML classes
- A class derived from TApplication and a set of several other classes
that together provide client/server DDE functionality to an OWL application.
-
-
SWinCommDev (Windows serial communications class)
- A drop-in class for Windows that provides some RS-232 serial
communication capabilities.
-
Other OWL pages
-
OWLRES.RC and OWLRES.RH
- A set of predefined OWL resources and their resource identifiers to
start any OWL project with, to avoid conflicts later.
-
OWL programs
-
Chess.cpp
- Uses a TLayoutWindow to create an invertible chess board with pieces on
it. As you move the pieces, it creates a record of the game which can be
saved to disk, reloaded, and animated. The program does not, however, play
chess, but you can play a game on the board it provides. The page also has
some other
chess-related links.
-
-
Neural Network with graphic display
- A rudimentary neural net program that uses graphics to show the status
of the network nodes as they "think". There is also a listing of the earlier
(and simpler) MSDOS version of the program.
-
-
Natural Language Processing (NLP) chatbot
- An Eliza-like program that converses with you, while performing natural
language processing (NLP) on your input in an attempt to extract
information, accumulate world knowledge, and learn correct grammatical
constructions.
-
-
Mandelbrot set Generates, displays, zooms, animates.
- Continuously
generates random regions at random magnifications that are filtered (screened) to avoid displaying blank or boring areas.
Full-featured program with color cycling, fast palette swapping, and palette manipulation. The project
also includes the predecessor MSDOS C++ version of the program and a Java
application version.
-
-
Logistic Map Bifurcation Diagram display Fractals.
- Displays the bifurcation diagram or logistic map of the equation
X=RX(1-X) as discovered by Robert May and described in Chaos, by
James Gleick. This program was derived from Winbrot, works the same, and has
its fancy features, including continuous generation mode.
-
-
Iterated function set (IFS) fractals continuously displays new fractal
designs
- Continuously draws color fractals based on randomly-generated Iterated
Function System (IFS) sets. Multiple drawing windows. Manually edit
transform sets. Crossbreed sets using a genetic algorithm with mutation.
-
-
WLife2d.cpp
John Conway's Game of Life cellular automaton
- Plays the Game of Life, a cellular automaton originated by John Conway.
Allows standard, random, or custom born/survive/die rules. User-adjustable
field size also adjusts cell size from 1 pixel to very big for easier
viewing.
-
-
Artificial life, evolution, adaptation demonstration
- Creates imaginary animals (as dots) that move around the screen
according to a self-contained program, eating each other or producing
offspring using a genetic algorithm, such that the programs evolve by
natural selection, survival determined by which ones are most effective at
obtaining food or producing offspring.
-
-
Bitmap file animator
- Displays .BMP bitmap files sequentially to animate them.
-
Bug Notes
- .RTF file incompatibility -- Many of these projects have .RTF documents to be used for creating Help files with the Microsoft Help Compiler.
However, they were edited with Word 2003 before being added to the project zip files. Word 2003 added data that causes parse errors when the files are
compiled with the Help Compiler for Windows 3.1. The solution is to open the .RTF file in Word 6.0 and save it. Word 6 strips out the incompatible data.
Version Note
These programs were all written with Borland C++ 4.0 and ObjectWindows
Library (OWL) 2.0. When I compile them in that environment (on my Windows
3.1 computer), the executables will not run under Windows XP. The .exe's
(not currently provided on the site) crash on launch with an error something
like GDI Error or GDI Failure. Whether I compile them for a Win16 or Win32
target (Win32s), they crash, even if they ran perfectly under Win32s with
Windows 3.1. I don't know the cause. Windows XP's backwards compatibility is
supposed to be pretty good, but apparently not for OWL. So far I've found no
simple fix or work-around, but one solution is in the next section:
OWL Links
OWL NExt
There are ports of ObjectWindows Library, called OWL NExt, to Windows
95/98/NT/2000/XP and Linux at
http://owlnext.sourceforge.net/index.html.
You install OWL NExt as a series of patches to OWL 5 or later, so the first prerequisite is
obtaining OWL 5.x.
It looks like OWL 5.x came bundled with Borland C++
Version 5.x, which was only for Windows 95 and higher. The Borland C++ 4.x
versions were all for Windows 3.1, and cannot be upgraded to OWL NExt.
The installation process looks fairly involved, possibly a 1-3 day project to
comprehend and complete. I haven't tried it yet myself. The site also has a
comprehensive set of OWL resources, including articles, tutorials, an OWL class
reference, a knowledge base, many OWL projects, links to other OWL-related
sites, and a lot more.
OWL Usenet discussion group
If you have an OWL-related question, this should be a good place to ask it:
http://groups.google.com/group/borland.public.cpp.owl
|