25 Years of Programming
An open source source for C, C++, OWL, BASIC, MDB, XLS, DOT, and more...
Home   Projects   Up   Sitemap   Search   Blog   Forum+Chat   About Us   Privacy   Terms of Use   Feedback   FAQ   Images   Services   Ads   Donate   Humor

Click to view full size: Mandelbrot set area. Click for full size.

Logistic map bifurcation diagram area. Click for full size.

IFS fractal image. Click for full size.

Screenshot of Game of Life, Windows version. The window wraps in all directions. Top and bottom borders connect, as do and left and right. Click for 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

  1. .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

 

Valid HTML 4.01 Transitional Valid CSS
View content labeling at ICRA.
Copyright ©2008 Steven Whitney. Last modified 05/31/2008.