DBROWSE.PRG, Capt Chuck Becker, 1992

DBROWSE.PRG provides the skeleton of a .PRG that implements a database
browse, with db navigation and editing keys.  The design attempts to
strike a balance between passing an overwhelming number of parameters
on the one hand and having to make extensive modifications to DBROWSE.PRG
on the other hand.  A typical call to DBROWSE looks like:

DO dbrowse WITH top_row, left_col, bottom_row, right_col,
                color_standard, color_enhanced, color_litebar

Implementing DBROWSE in a program requires the caller to declare and open 
the database to be browsed, saving and restoring the screen (if desired).  
Then the DBROWSE.PRG must be modified and saved with a unique name.  
Modifications to DBROWSE include inserting the database declaration as
EXTERN, modifying the declaration of the DBROWSE module functions 
"line_item" and "get_vals", and modifying those two functions to behave as 
desired.

The provided source code and examples (DEMO.EXE, calling program DEMO.PRG,
and example browse DBROWSE.PRG) illustrate how to implement DBROWSE and
demonstrate the functionality it provides.  Example files also include
the ".dbf", ".dbt" and ".fdx" used in the example.

There may, in fact probably are, better ways to implement a browse or
db_edit.  On the other side of that coin, by implementing DBROWSE as a
.PRG, the entire inner working of the browse are readily available.  It
would be relatively simple to implement more sophisticated means of
navigating the database, display and edit routines.

To build DEMO.EXE, do the following:

1) compile DEMO.PRG (force demo)
2) compile DBROWSE.PRG (force dbrowse)
3) link demo & dbrowse to the force library (link demo+dbrowse,,,force.lib)

Any comments, suggestions, enhancements would be freatly appreciated.

Chuck Becker
2/1/92
Novato, CA (Compuserve 70154,1136)
