Clipper 5.3 introduces the native Clipper mouse & GUI programming with the use of
Lightlib as a alternative terminal driver. Unfortunately, 5.3 was found to be buggy and with
inadequate documentation as to the usage of the mouse & GUI programming. While CA-Clipper 5.3a has mainly been created as a maintenance release, there are a few
enhancements in the product that we hope you will find useful.
These enhancements include new macros in the source code editor (please see the
"CA-Clipper Workbench Source Code Editor Macros" chapter of this document) and a new sample application named GDBU. GDBU is a graphics version of CA-Clipper's
DBU. This sample application has been written entirely in CA-Clipper 5.3 and demonstrates
the many uses of graphics mode. The source code to this sample application has been
included in the CLIP53\SOURCE\SAMPLE\GDBU directory. Feel free to change this source
code as you wish so that you can experiment with the many features that graphics mode has
to offer in CA-Clipper.
___________________________________________________________________________________ CA-Clipper Release Notes Version 5.3b Intl May 1997 ___________________________________________________________________________________ CONTENTS ======== 1. Installation Instructions 2. What's Fixed in CA-Clipper 5.3b 3. Other CA-Clipper 5.3 Patches 4. CA-Clipper File Descriptions 5. Supported Operating Systems 6. MISSING STD.CH and SET.CH Documentation 7. Miscellaneous 1. INSTALLATION INSTRUCTIONS ============================ There are several important pieces of information that you must be aware of before installing CA-Clipper 5.3b. * Please backup your existing CA-Clipper 5.3a files and directory structure before running this installation. * You must install on top of CA-Clipper version 5.3a. This installation will not work properly if you attempt to install over any CA-Clipper version other than 5.3a. * CA-Clipper 5.3b can be installed only from DOS. * You must have 8MB free on the hard disk where CA-Clipper 5.3a is installed. You must place the files 53A_BI.RTP and PATCH.EXE in the root of the directory where CA-Clipper 5.3a is installed. From the DOS prompt, execute the following: PATCH /S 53A_BI.RTP > PATCH.LOG After the patch process has completed, please examine the PATCH.LOG file in the root of your CA-Clipper 5.3b directory to view the results of the patch. 2. WHAT'S FIXED IN CA-CLIPPER 5.3b ================================== Below is a list of fixes for CA-Clipper version 5.3b. Category Description of Fixed Problem -------- ---------------------------- Append APPEND FROM...DELIMITED. If text file record(s) are offset by one or more spaces at their beginning, the first FIELD in the target database will no longer contain displaced data. Blob No longer receive an unresolved external or multiple definition error using DBFBLOB.LIB. DOS Debugger Protected Mode Debugger LOCAL variable values are no longer affected by the presence of a file-wide STATIC. Error System DOS error 5 no longer occurs before NETERR() when the opening of a exclusive database fails. Get System Any Class Object is now permitted to be used with the GET system. The saved color settings are no longer restored too late when using delimiters. Using a long GET caption will no longer GPF under Exospace. Changed HitTest() to a PUBLIC Function for access from MenuSys.Prg to allow mouse recognition on a Get Object while in a MenuModal(). Changed Accelerator() to a PUBLIC Function for access from MenuSys.Prg to allow accelerator key recognition on a Get Object while in a MenuModal(). Added GetSystem Array Element to access Menu Item ID Number which was not available. Added GetSystem Array Element to save and restore CURSOR shape and display because it wasn't being properly restored. Added code to properly save and restore the CURSOR. Added code to properly save and restore the Menu ID Number. Following 2 items were changed/added to prevent both Pre and Post GET VALIDation from executing twice. This was done by: Added code to test IIF() a Mouse Hit or Accelerator key was pressed: 1) in GetReader(). 2) in GUIReader(). 3) in TBReader(). Added code to test EXITing a GET or the READ: 1) in GetReader(). 2) in GUIReader(). 3) in TBReader(). All instances of the MenuModal() call are saved to a Menu ID Number element in the GetSystem Array because previously it was not accessable. nHotItem was used to replace the second parameter in each call to MenuModal() because the Menu ID Number retrieved was not updated. Added missing assignments for GetSystem Array Elements for the READVAR() and GETACTIVE() values because they were not reset and were not previously available from application code from within: 1) ClearGetSysVars() 2) RestoreGetSysVars() Added ROW(), COL(), and SETPOS() to EraseMsg() because CURSOR position was previously not handled as accurately. IDE Corrected the status bar messages. When in the Source Code Editor, the Menu Editor is no longer grayed out. The Source Code Editor can now support international keyboards (international bug). If the DEL key is the hot-key for delete module according to the file menu, it no longer deletes entities from within module specific entity borwser. After iconizing the module browser, the module browser is now able to be restored. Application browser: the DELETE dialog box is now modal. Window Editor: 'Next' menu command and hot-key now work properly. Rename a application and then do Export. When the Export dialog box is displayed it now has the new application name. Menu editor: the "External PRG already exist..." message box is now modal. When import and build an application in a blank application browser, the module browser is no longer shown the first time with unknown text. Form Editor: Resizing a combo box no longer changes the text. Using the default color from the form editor, it is no longer difficult to see the blank cursor, (this happens after you choose an item from the toolbox on a blue background). In source code editor, the menu Editor menu item in the tools menu is no longer active. When building with editors open, if work has been saved, no longer receive the following message box: "Warning! Unsaved work will not be included". Form Editor properties window is now saved. Math MSC 8.0 math error text will no longer be displayed, (e.g., 'sqrt: _DOMAIN error' resulting from a call to SQRT(-1)). Memory Memory loss no longer occurs when opening and closing databases. Memory loss no longer occurs when opening and closing databases with CDX indexes. Menu System Added calls to the GetSys.Prg PUBLIC Function HitTest() because a Mouse Hit on a GET was not detected from a Menu Object. Added calls to GetSys.Prg PUBLIC Function Accelerator() because GET shortcut keys were not detected while in a Menu Object. Added Menu System Array Element to access CURSOR ROW() because it was not globally available to the application. Added Menu System Array Element to access CURSOR COL(). because it was not globally available to the application. Added Menu System Array Element to access CURSOR position. because it was not globally available to the application. Added GetList as a new last parameter for MenuModal() because access to Get Objects from Menu Objects is required when both are used. Added code to save and restore the CURSOR Position and shape because it was not previously restored properly by assigning the: 1) Row. 2) Column. 3) Shape. 4) and calling SETPOS(). Changed Menu System HitTest() Function to MHitTest() to avoid conflict with the PUBLIC Function HitTest() in GetSys.Prg. Added code to save and restore CURSOR position and shape before and after each call to EVAL() for a Menu Object because it wasn't properly restored. Added missing PARENTHESES in commented out source code because it was not previously compilable without syntax errors if it was uncommented for usage. Tools Linking in the new __WAIT_4.OBJ (located in the OBJ directory) before CA-Clipper Tools will eliminate the R6003 and/or GPF at startup using AMD or Cyrix processors. ScrollBar If the end of a displayed ScrollBar Object ends at MAXROW() and MAXCOL() it will no longer cause the screen to scroll. Using the Update() method with multiple ScrollBar objects will no longer cause erroneous screen painting. Version Version() will now display the build number. 3. OTHER CA-CLIPPER PATCHES =========================== Since the release of CA-Clipper 5.3, several patches for CA-Clipper and Comix/FlexFile have been released. All of those patches have been incorporated into CA-Clipper 5.3b. These patches are the following: * OPT_53.EXE - Includes OPTEDIT.EXE which provides a fix for Internal Error 8002. * CLFLEX1E.ZIP - Contains fixes for Comix and FlexFile libraries. * CL53UP.ZIP - Contains indexing fix by using SORTOF.OBJ. * C53AI1.ZIP & C53AI2.ZIP - Contains Revision A Update. Please note that the use of SORTOF.OBJ is not necessary in version 5.3b. This fix has been incorporated into CLIPPER.LIB. 4. CA-CLIPPER FILE DESCRIPTIONS =============================== The following is a list of the important files that are supplied with CA-Clipper 5.3b. BIN Directory ------------- BLINKER.EXE CA-Clipper's real mode linker. For a dual-mode or protected mode version of Blinker, you can obtain an upgrade from Blink, Inc. BML2RES.COM A utility that will extract bitmaps and fonts out of a bitmap library. BMLDIR.COM A utility that will list all resource files that exist in a bitmap library. CACI.BAT Used by the Workbench to launch CA-Clipper applications. CL.BAT A batch file designed to compile and link one .Prg into an .EXE. CLD.HLP Help file used with the CA-Clipper debugger. CLDR.EXE CA-Clipper's real mode debugger. CLIPPER.EXE The CA-Clipper compiler. DBT53.EXE A utility to make your Summer '87 memo fields compatibly with CA-Clipper 5.3. DBU.EXE A database Utility that allows you to create, modify, and browse DBF files. DBU.HLP Help file for DBU.EXE DBU.ICO The icon used for DBU in Windows. EXOSPACE.EXE, EXO1.EXE, EXO2.EXE. CA-Clipper's protected mode linker, splicer, and loader. OPTEDIT.EXE Options editor for CA-Clipper/Exospace .EXEcutable files. See the OPTEDIT.TXT information on how to fix Internal Error 8002 and remove the Startup BANNER. PE.EXE A simple text editor written in CA-Clipper. PMINFO.EXE Utility to report a machine's protected mode memory configuration. Useful for runtime information affecting your CA-Clipper/Exospace created applications. RES2BML.COM A utility to create a bitmap library from font and bitmap files. RL.EXE CA-Clipper's .FRM Report Form and .LBL Label Form file editor utility. RMAKE.EXE Utility used to create CA-Clipper .EXEcutable files. Reads a set of compile and link rules contained in an .RMK file. May also be used to execute other utilities, including LIB.EXE, to create other files. RMINFO.EXE Utility to report your machine's real mode memory configuration. Useful for runtime information affecting your CA-Clipper/Exospace created applications. RO.COM Toggles ReadOnly attribute of a file, (e.g., RO <.EXE>, permits file Sharing). TTF2FNT.EXE A Windows utility which translates Windows true-type fonts into .FNT fonts which are readable by CA-Clipper. UNIVESA.EXE Utility for use with older video cards which are not VESA compatible. Only useful when working in graphics mode. (Not all video cards are compatible.) CACI Directory -------------- CACI.EXE The CA-Clipper Workbench. CACI.HLP The CA-Clipper Windows help file. CACI_STR.DLL, CACIACT.DLL, CACIADAM.DLL, CACIATOM.DLL, CACICNTR.DLL, CACICOMP.DLL, CACIDATE.DLL, CACIDED.DLL, CACIEDIT.DLL, CACIERR.DLL, CACIFED.DLL, CACIINT.DLL, CACILINK.DLL, CACILOAD.EXE, CACILOGW.DLL, CACIMASK.DLL, CACIMED.DLL, CACIMEM.DLL, CACINMBR.DLL, CACINT10.DLL, CACIRDD.DLL, CACIRDDB.DLL, CACIRT10.DLL, CACISSYS.DLL, CACISWIN.DLL, CACITBOX.DLL, CACITIME.DLL, CACIWDCI.DLL, CACIWED.DLL, CACIWED.INI, CLIPMDLL.DLL, CTL3D.DLL, DBF.DLL, DBFNTX.DLL, RUNAUTO.COM, REMOVE.EXE, CACI$.DAT, TOOLHELP.DLL CA-Clipper Workbench support files. CACIRIDX.EXE A utility used to reindex your repository. If you receive a message that your repository has become corrupted, you can use this utility to reindex the repository. EXOSPACE.TPL The default linker template that is used when building from the Workbench. BLIDUA.TPL A Blinker template file that can be used for Blinker dual mode applications. This template only applies if an upgraded version of Blinker has been purchased from Blink, Inc. BLIEXT.TPL A Blinker template file that can be used for Blinker extended mode applications. This template only applies if an upgraded version of Blinker has been purchased from Blink, Inc. BLIRMD.TPL A Blinker template file that can be used for real mode applications. This template only applies if an upgraded version of Blinker has been purchased from Blink, Inc. LIBRARY.TPL A template file that can be used to create library files. In order to create libraries, the executable file LIB.EXE is required. CACI/DATA Directory ------------------- CATALOG.VO, REPNAME.IND, REPTYPE.IND, SYSTEM_L.APP, SYSATOM.VO, APPTAB.VO, SYSTEM_L.PFX, SYSTEM_L.IDX CA-Clipper Workbench Repository files. DC_UTILS.PRG, DISKDATA.DBF, DISKID.NTX, SALES.DBF, SALES.PRG, SALESREP.NTX CA-Clipper Workbench sample files. INCLUDE Directory ----------------- All files in this directory with an extension of .CH are CA-Clipper header files which you can #include in your CA-Clipper applications. All other files in this directory (.H, .API, and .MAC) are header files which can be used with C or Assembler code. LIB Directory ------------- DBFCDX.LIB, _DBFCDX.LIB Both .LIBraries are known as the FoxPro 2.6 for DOS Replaceable Data Driver. Both are required to support .DBF, .CDX, and .FPT or .DBV Child Memo files. The Parent _DBFCDX Database and INDEXing RDD may be used without the Child DBFCDX Memo/BLOB RDD. Only linking _DBFCDX is required when no .FPT or .DBV Memo files are used within the application and in order to use .CDX indexes. Also, if using the Child DBFCDX RDD, linking DBFMEMO.LIB is not necessary, as that .LIBrary's functionality is included in DBFCDX.LIB. Single TAG .CDX and .IDX files are not supported. Default MEMOBLOCK or MBLOCKSIZE SETting is 64 Bytes. ANSITERM.LIB, NOVTERM.LIB, PCBIOS.LIB BIOS and device driver files used by CA-Clipper. C53BLMAX.LNK, C53BLMID.LNK Maximum and medium overlay scripts to be used with Blinker. CLD.LIB Library for CA-Clipper's protected mode Debugger. Remember to link this into the root of the .EXEcutable in a FILE statement after compiled .OBJs. (There is no CLD.EXE equivalent of CLDR.EXE, so Restart and .EXEcutable command line Debugger Options are not available. SET Options with CLIPPERDEBUG=/D /S.) CLDR.LIB Library for CA-Clipper's real mode Debugger. Remember to link this into the root of the .EXEcutable in a FILE statement after compiled .OBJs. Use together with the CLRD.EXE. CLIPPER.BML Bitmap library consisting of numerous fonts as well as bitmaps used by CA-Clipper to display checkboxes, radiobuttons, scrollbars, etc. To view the contents of this file, run BMLDIR.COM. CLIPPER.LIB The main library which contains most of the functionality for CA-Clipper. DBFBLOB.LIB A FlexFile library which provides support for Binary Large OBject files to be stored in memo fields. Default MEMOBLOCK or MBLOCKSIZE SETting is 64 Bytes. DBFMDX.LIB The dBase IV 1.1 through 2.0 Replaceable Data Driver which may be used to create .MDX multi-TAG index files. DBFMEMO.LIB A FlexFile library which provides support for large memo fields. Default MEMOBLOCK or MBLOCKSIZE SETting is 64 Bytes. DBFNDX.LIB dBaseIII Plus Replaceable Data Driver which you can use to create .NDX index files. DBFNTX.LIB CA-Clipper's Replaceable Data Driver which can be used to create .NTX index files. The Child DBFMEMO Memo/BLOB RDD may be used with it to support Child .FPT (or .DBV) files. EXOSPACE.LIB Library used by CA-Clipper's protected mode linker. EXTEND.LIB Miscellaneous CA-Clipper functionality is included in this library. LLIBG.LIB The Light Lib Graphics library which can be used to create graphics mode applications. See the SET VIDEOMODE command for details. SAMPLES.LIB A library which was created from many of the samples provided in the samples directory. TERMINAL.LIB CA-Clipper's library which handles output to the screen. When you use LLIBG.LIB or any other terminal driver, this library is replaced. NG Directory ------------ NG.EXE The Norton Guide engine. Norton Guides are a DOS help tool which, when used in conjunction with .NG files, provide online help. C53G01C.NG, C53G02C.NG, C53G03C.NG, C53G04C.NG The help files for CA-Clipper 5.3 OBJ Directory ------------- _MDXSYS.OBJ Include this object file to set the MDX driver as the default driver for your application. Be sure to include DBFMDX.LIB as a library in your link script. CDXLOCK.OBJ Use the CDXLOCK.OBJ driver in order to use your CA-Clipper database concurrently with FoxPro databases. The CDXLOCK.OBJ driver is necessary to maintain compatible locking schemes between CA-Clipper and FoxPro. GT.OBJ Part of the CA-Clipper General Terminal driver. This driver provides similar functionality to TERMINAL.LIB. TERMINAL.LIB should be used instead of GT.OBJ except if you are using a 3rd party library which replaces TERMINAL.LIB. NULSYS.OBJ If your application does not require any RDDs (including the default DBFNTX driver), you can include NULSYS.OBJ into your link script as an object file to avoid having to include the DBFNTX.LIB. This will increase the speed of your link as well decreasing the size of your application. NTXLOCK2.OBJ This driver will change the locking scheme for your databases so that you can have more records in a database file. By default, CA-Clipper will lock records at 1 billion + the record number. When databases get large enough it can bump into this locking area and cause problems. With NTXLOCK2.OBJ, the locking offset is moved to 4 billion. Please note, though, that using NTXLOCK2.OBJ will create indexes that are not compatible with older versions of CA-Clipper. __WAIT_4.OBJ Linking in __WAIT_4.OBJ before CA-Clipper Tools will eliminate the R6003 and/or GPF at program startup using AMD or Cyrix processors. MDX*.OBJ, MSG*.OBJ, NTX*.OBJ (except NTXLOCK2.OBJ, see above) These files provide runtime national language support. Please read NATION.DOC for more information. SOURCE Directory -------------------- You can modify the source code in these directories as you wish, but please keep a copy of CA-Clipper's original files. DBU Files The files in this directory contain all of the source code for CA-Clipper's Database Utility. PE Files The files in this directory contain all of the source code for CA-Clipper's text editor. RL Files Source code for CA-Clipper's Report and Label Utility. SAMPLE Files Miscellaneous samples. GDBU Files A new set of sample files for CA-Clipper 5.3a. This directory contains the source code for a completely re-written DBU in graphic mode using CA-Clipper 5.3. All of the source code is provided, including the RMake file, link script, and bitmap libraries. Feel free to play with this source code as you wish as it can help you learn how to use the new Light Lib Graphics library. SYS Files Included in this directory are system files which are used by CA-Clipper. These include the Get System, Browse System, Menu System, Memo System, Error System, and RDD System. Some functions that are generated by CA-Clipper's form and menu editors call functions in these files. Feel free to examine and modify these files as you wish, but please keep a copy of the original files. 5. SUPPORTED OPERATING SYSTEMS ============================== CA-Clipper is supported under all MS-DOS versions later than and including MS-DOS 3.3. The CA-Clipper Workbench is supported under Windows 3.1, Windows 3.11, Windows for Workgroups, and Windows 95. Please note that Windows 95 was NOT supported in the initial release of CA-Clipper 5.3, but is supported in CA-Clipper 5.3a and above. OS/2 (any version) and Windows NT are NOT fully supported at this time. 6. MISSING STD.CH AND SET.CH DOCUMENTATION ========================================== DBI Manifest Constants in Reference Guide NG: DBI_GETSCOPE 34 /* Locate codeblock */ Missing SET COMMANDS in Reference Guide NG: SET MBLOCKSIZE TO
=> Set( _SET_MBLOCKSIZE, ) SET MFILEEXT TO => Set( _SET_MFILEEXT, ) SET STRICTREAD => Set( _SET_STRICTREAD, <(x)> ) SET STRICTREAD ( ) => Set( _SET_STRICTREAD, ) SET AUTOPEN => Set( _SET_AUTOPEN, <(x)> ) SET AUTOPEN ( ) => Set( _SET_AUTOPEN, ) SET AUTORDER TO => Set( _SET_AUTORDER, ) SET AUTOSHARE TO => Set( _SET_AUTOSHARE, ) SET MFILEEXT TO => Set( _SET_MFILEEXT, ) SET Manifest Constants in Reference Guide NG: 14 _SET_TYPEAHEAD Numeric SET TYPEAHEAD TO 21 _SET_EXTRA Logical None 39 _SET_EVENTMASK Number SET EVENTMASK TO 40 _SET_VIDEOMODE Number SET VIDEOMODE TO 41 _SET_MBLOCKSIZE Number SET MEMOBLOCK TO 42 _SET_MFILEEXT Character SET MFILEEXT TO 43 _SET_STRICTREAD Logical SET STRICTREAD 44 _SET_OPTIMIZE Logical SET OPTIMIZE 45 _SET_AUTOPEN Logical SET AUTOPEN 46 _SET_AUTORDER Logical SET AUTORDER TO 47 _SET_AUTOSHARE Logical SET AUTOSHARE TO NATIONMSG Manifest Constants - from several files: _DIR_TITLE 1 // "Database Files # Records Last Update Size" _LF_SAMPLES 2 // "Do you want more samples?" _RF_PAGENO 3 // "Page No." _RF_SUBTOTAL 4 // "** Subtotal **" _RF_SUBSUBTOTAL 5 // "* Subsubtotal *" _RF_TOTAL 6 // "*** Total ***" _GET_INSERT_ON 7 // "Ins" _GET_INSERT_OFF 8 // " " _GET_INVD_DATE 9 // "Invalid Date" _GET_RANGE_FROM 10 // "Range: " _GET_RANGE_TO 11 // " - " _LF_YN 12 // "Y/N" 7. MISCELLANEOUS ================ Production or Structural Indices (same prefix name as the Parent .DBF), are opened automatically with the database. Specify #include "Ord.Ch" with these. Specify #include "Ord.Ch" at the top of each .Prg which perform operations related to the following activities: INDEXing ORDERing RELATIONs SCOPE FILTERing .CDX files default to auto-opening and order 0 ( Natural ). These defaults can be changed by SETting AUTOPEN and AUTORDER commands. SET ORDER TO TAG or (SET ORDER TO to nullify) with Multi-TAG RDDs. Corrections to Error Messages and Appendices Guide, Page I-2: Maximum length of a CHARACTER string: 65,516 bytes Maximun size string, or CHARACTER or MEMO FIELD 65,516 bytes Maximum key expression length: .cdx (_DBFCDX RDD) 240 bytes