Latest Release Notes

(CA-dBFast 2.0D - US Version)

Version 2.0D-2

Workbench: 1 correction.
[Read Notes]

Version 2.0D-1

Workbench: 1 correction.
[Read Notes]

Version 2.0D

Workbench: 63 corrections, Visual Designer: 6 corrections.
[Read Notes]

Version 2.0C

Workbench: 78 corrections, Visual Designer: 8 corrections.
[Read Notes]

h3>Version 2.0B

Workbench: 61 corrections, Visual Designer: 12 corrections.
[Read Notes]

Version 2.0A

Workbench: 10 corrections, Visual Designer: 17 corrections.
[Read Notes]

Build 3

Workbench: 28 corrections, Visual Designer: 20 corrections.
[Read Notes]

Builds 1 and 2

Workbench: 16 corrections, Visual Designer: 1 correction.
[Read Notes]


 

Version 2.0D-2

Workbench (1 correction)

  1. APPEND BLANK can now be performed against a .DBF that is shared on a LAN when another workstation has a record locked.


 

Version 2.0D-1

Workbench (1 correction)

  1. .DBF header record count will now be correctly updated on a LAN.


 

Version 2.0D

Workbench (63 corrections)

  1. Using CREATE CONTROL BROWSE with STYLE POPUP and having SET DELETED ON will no longer result in the current record still being displayed even after you have selected DELETE.

  2. When the first record is marked for deletion and a BROWSE is open, a SEEK now goes to the correct record.

  3. Using a CREATE CONTROL FIELD with a valid that returns .F. on a browse will no longer result in a GPF if the error box comes up several times and OK is hit.

  4. RETURN TO MASTER no longer exits the application no matter where it is in the code, as if a QUIT was issued.

  5. DEC 0 will no longer give error 179 - number is too large.

  6. CREATE CONTROL FIELD with a picture clause, COPY TO, then CREATE CONTROL BROWSE will no longer GPF.

  7. The compiler will accept "A= &B" as a macro assign command, and will now accept "A=&B".

  8. While editing a new record, CTRL+BREAK followed by EXIT PROGRAM will no longer leave junk characters in the new record.

  9. The DDE command 'SET INDEX TO ...' now works.

  10. The debugger will now show the value of a parameter variable.

  11. The debugger once again shows the current window and work area.

  12. In the VIDEO design example, the second code form, INDEXDB now has code in it.

  13. The IVAD demo now has a file name for the backup file, no longer resulting in error 10 when you try to make a backup of the database. It is tryingto save to a file with just a drive letter.

  14. After a while of editing, clicking at the very end of the file and holding the shift key while clicking at the top of the file will no longer result in an error if the selected text is cut or copied.

  15. If in the valid of a CREATE CONTROL EDITBOX an error occurs, and an ON ERROR proc is called, dbfast will no longer GPF.

  16. Error 34 during runtime now reads 'Printer not responding'.

  17. Using a CTRL+Alpha-key keystroke combination from within a GET statement will now return a keyboard event from the event() function.

  18. CHKEVENT() now returns a 3 when user clicks in another window.

  19. MODALEVENT() will now return a 1 if a ESC keyboard event occurs when a BROWSE is active.

  20. Creating a dbf with field names that contain german vowel mutations will no longer cause dbfast to not recognise the dbf as valid.

  21. MEMOEDIT() straight from a dbf will now allow 5000 characters to be entered.

  22. MEMOREAD() will now read in a text file up to 5000 characters.

  23. If you overtype data in a GET field of less chars than was there originally, the old data is no longer left in the GET.

  24. Loading a memo field into var, then using it in a multi-line editbox, then issuing an UPDATE GETS will no longer result in a GPF.

  25. CA‑dBFast will now overwrite data that is in a GET regardless if it is the first GET.

  26. UPDATE GETS on a GET that a memory variable was assigned to with 2000 chars in it will no longer result in an App Error.

  27. When changing focus with the mouse then exiting the READ from several GETs, the valid will no longer be run for more than one GET.

  28. Windows MetaFiles are now displayed.

  29. Images pasted into a dbf are now stored in DIB format.

  30. INDEX ON DESCEND(STR())... will now correctly index the dbf.

  31. SEEK() will now put the rec pointer at EOF() if no match is found.

  32. The valid of a CREATE CONTROL EDITBOX will now be called if the SAVE TO is a memo field.

  33. Repeatedly drawing and erasing a CREATE CONTROL TEXT and a DRAW LINE will no longer use up all system memory.

  34.  CLEAR TO will now release a graph from memory.

  35. CREATE CONTROL GROUPBOX ... FONT ... will now release system resources when closed.

  36. The CENTER() function will no longer lose system memory even if properly cleared.

  37. The @...GET...RADIOBUTTON, COMBO, and CHECKBOX commands will now release system memory upon termination of the READ.

  38. On a Novell network, using a database file, FLOCKing the file, UNLOCKing the file, and then CLOSEing the file will now allow more than 20 locks of the file.

  39. 39) On a Novell network, using a database file, RLOCKing a record then closing the database will now allow this to be done more than 11 times before you can no longer RLOCK a record from that database.

  40. Using RELOCK() with a parameter to lock one or more dbfs now properly works.

  41. Performing a DELETE ALL FOR... with SET FIELD LOCK ON will no longer cause error 48 - lock required.

  42. Using REPLACE with the FOR clause on a shared dbf will no longer result in error 48 - lock required with SET FIELD LOCK ON.

  43. Using '$' in the picture clause will no longer produce a '$' for every place a comma would appear if the number was large enough.

  44. Using a static char like '1' in the picture clause will no longer cause the GET to change the contents of a char field displayed to one or more '1's.

  45. The '@!' picture clause for all upper characters now works.

  46. Color bitmaps will now print properly on a 500C color printer.

  47. Printing 256 color grey scale images from CA‑dBFast no longer results in image quality far less than the original.

  48. Sorting with three fields (all being character fields), will no longer intermittently not sort the third field correctly.

  49. The color of the text of groupboxes is now refreshed properly.

  50. The horizontal title on the piechart is no longer cutoff by the window frame for the piechart.

  51. The vertical title of a piechart is now displayed.

  52. A RECTANGLE will now correctly show an @SAY if an @GET EDITBOX was displayed then erased on the same spot as the @SAY.

  53. 256 color images loaded into a dbf, then displayed from the dbf will now have the correct palette.

  54. Passing a '0.00' to a GET will now display the leading '0'.

  55. A large number of DRAW LINE commands will no longer eventually change the color of the lines to black if they were originally being drawn in another color with SET SAY VIDEO TO.

  56. The MOUSE() function will no longer return .T. if the right mouse button is clicked.

  57. After receiving a runtime error message, if the .prg file has been deleted, no longer receive an invalid window handle message.

  58. Creating a bar+raised+hidden window and then @SAYing will no longer result in the @SAY showing through the window.

  59. Using SHOW WINDOW 'XX' BITMAP will now allow the window to be restored under program control.

  60. A date field in a CREATE CONTROL BROWSE will no longer lock the executable application when an invalid date is entered.

  61. Issuing an @... CLEAR to ... after a CREATE WINDOW and before an @... SAY will no longer cause the text to not be displayed on the window.

  62. When clicking on another window while CA‑dBFast is placing controls on a window will no longer cause the controls to be placed on the window that was clicked upon.

  63. COMMIT will now immediatly update the header of the .DBF.

Visual Designer (6 corrections)

  1. Setting the display format of a field to '@!' will generate the picture clause of '@S10 @!', which will no longer allow only one char to be entered.

  2. The designer no longer generates a SET EVENTMSK TO 159, which incorrectly includes unsupported number 16.

  3. The SYSTEM.CAT will now be updated if a design is deleted, and cause a dbf in a dictionary to not be able to be modified, giving error that it is in use elseware.

  4. Using the RANGE and VALID parm on a field will no longer cause the designer to generate both RANGE and VALID, which is not valid.

  5. The limit of menu items was raised from 20 to 25.

  6. Creating two pulldown menus, one without any items will no longer generate code missing an ENDIF/ENDO/ENDCASE.


 

Version 2.0C

Workbench (78 corrections)

  1. Setting a filter on a large DBF, doing a BROWSE, then hitting ESC toexit will no longer take a very long time to close the BROWSE.

  2. Using BROWSE with the FIXED parameter will no longer allow the addition of new blank records by hitting CTRL+W and DELETED to be changed by CTRL+U.

  3. Using a large filtered DBF in a BROWSE, hitting CTRL+END, then use scrollbar to get to the beginning, will now refresh properly.

  4. Using SET DELETED ON in a browse with an index, then deleting a record will now result in the focus going to the next record in the index instead of the natural order.

  5. The current record will now be displayed when BROWSE is used, even when a GOTO was issued prior.

  6. A DBF with a filter set passed to a BROWSE will no longer show the first record, if it is in the filter or not.

  7. If a rec is DELETED when a BROWSE is open, the record is now completely removed from the BROWSE.

  8. With a CREATE CONTROL BROWSE open, and seeking a deleted rec with SET SOFTSEEK ON and SET DELETED ON, the seek will now find the next record in the index, not the natural order.

  9. A CREATE CONTROL BROWSE will now always show the correct rec number if a filter is set.

  10. Hitting ESC in a CREATE CONTROL BROWSE with style NOTRACK, will no longer cause 'invalid window handle in VIO1.C'.

  11. Have a GET and a READ SAVE on the screen, then open a window, put another GET and a READ, then open a BROWSE. CA‑dBFast will no longer GPF when the window is closed.

  12. Using SET FIELD LOCK ON and appending data to a DBF to fields other than the one with an index, the browse will now be able to display the DBF and index.

  13. APPEND BLANK after GO BOTTOM will now show the correct rec in a browse.

  14. The thumbwheel of the browse will now show the correct position.

  15. If the BROWSE has STYLE VIEW+POPUP, the 'Copy, New...' menu items will not be shown.

  16. Returning from a chain that created and object with a valid, then clicking on that object (which calls the valid) will no longer GPF. This should not be done in the first place.

  17. Radio buttons will now use the color param for the background.

  18. Using the following: INPUT to VAR1 followed by WAIT and WAIT will no longer ignore the first WAIT command.

  19. The SET GRAPHIC INPUT TO 'CAPTURE' command now works correctly.

  20. The ON KEY command will now work when the focus of a window is on a CREATE CONTROL BROWSE.

  21. Using a valid clause on a CREATE BUTTON command in association with an ON ERROR routine will no longer cause an application error.

  22. Using APPEND RECORD on a DBF with a memo field that is is empty will no longer result in error 41 - error reading dbt file.

  23. SET FORMAT TO followed by an APPEND will now append records.

  24. SET CONSOLE OFF will now turn off the output to the screen correctly.

  25. COPY RECORD TO will no longer cause a GPF if it is copying to a brand new DBF created with COPY STRUCTURE TO.

  26. Using the SUM command with the TO parm incorrectly using a DBF field will no longer result in a GPF.

  27. COPY FILE will now copy a DBF that is in use even with SET EXCLUSIVE OFF.

  28. APPEND BLANK will now append a new blank record, it will no longer make a copy of the last record that was selected.

  29. Omitting the DLL keyword in the DECLARE of a DLL will now cause a syntax error, avoiding CA‑dBFast not able to find the DLL.

  30. The compiler will no longer GPF on this code: DEFINE PROGRAM PROG1, CHAIN PROG2.

  31. The ABOUT param of TALK TO will now accept a macroed var.

  32. The editor no longer allows you to type CTRL+K, which would insert the control char into the program, causing a compiler error.

  33. Open a .txt file, minimize it, open a .prg file, close .prg, select Save/Compile will no longer result in a GPF.

  34. Now receive 'Error 111 - expected a string expression' if you pass a numeric in the SAVE TO of a CREATE CONTROL RADIOBUTTON.

  35. The MODALEVENT() function will now trap all events inside the current window if the event mask is set to anything that does not include the 4 bit in the EVENTMSK.

  36. The SET EVENTMSK TO 7 now ignores the event 10 for a mouse click in the client area.

  37. The cursor will now show up in GET fields when the EVENTMSK is set to 255.

  38. Using MODALEVENT() with a CREATE CONTROL BROWSE, a keyboard event will be recognized after ESC is hit.

  39. An event is generated when the EXIT is clicked on in a browse menu.

  40. Having a linked app running, and trying to exit windows will bring up an "Unsafe to exit dialog box." The title of this dialog is no longer "CA‑dBFast", it is the .exe file name.

  41. The CTOD() function's upper limit is now consistent with CA‑Clipper.

  42. CTOD(" ") will no longer produce inconsistent results.

  43. The READVAR() function will now return the correct GET variable.

  44. The GETVAR() function now works when in a valid from GETs that are using array elements.

  45. Hitting ESC in a CREATE CONTROL BROWSE, then executing some GETs and then a READ SAVE will now show the cursor in the first GET.

  46. 46) Applying a CREATE CONTROL FIELD to a GET will no longer result in the contents of the GET disappearing when the focus is moved off of that particular GET.

  47. UPDATE GETS on a multi-line GET will no longer fill the GET with the field padding, preventing entering further text.

  48. Returning a .F. from a valid will now place the cursor at the beginning of the GET.

  49. The message box that is brought up by a GET with RANGE and ERROR parms is now modal.

  50. An image placed on the screen with DISPLAY IMAGE can now be removed with an @CLEAR TO.

  51. The context sensitive help in the editor, by using SHIFT+F1, now works.

  52. Indexing on a very large DBF (> 2M recs) will no longer cause CA‑dBFast to try to create a temporary index file with an illegal extension of .1000.

  53. CLOSE CONTROL of an RRECTANGLE control will now release system resources if the FILLED param is used.

  54. Displaying and removing an image in an .EXE many times will now release system resources.

  55. Displaying and removing an image using DISPLAY IMAGE will now release system resources.

  56. Every time CA‑dBFast or CA‑dBFnrun is run, system resources are no longer lost.

  57. Repeatedly creating and closing a type 260 window, one with a shadow, will no longer lose system memory, about 3K for every window.

  58. @GETs with the FONT parameter will no longer lose system resources.

  59. SET EXCLUSIVE OFF and multiple APPEND BLANKs will append all recs.

  60. Typing in the decimal point in a GET that already has data in it will now remove the old data before the decimal point.

  61. Using a picture clause of '99,999,999' with a GET using POINT coords will no longer have the picture clause shifted to the left.

  62. With a picture clause of '99,999.99', the comma will no longer show up if the number is less than the comma value.

  63. Hitting the 'OK' button in the Print dialog box several times will no longer cause a GPF.

  64. Can now print BMPs to a printer.

  65. Sorting on three fields in a large DBF will no longer result in a GPF.

  66. SORT ON , TO FILE on a large DBF will no longer cause a GPF, since mixed fields are no longer allowed.

  67. Sorting on a DBF that has a SET FIELDS TO applied will no longer destroy the data in the DBF.

  68. Can now @SAY to the 25th row of the screen in a 640x480 setup.

  69. ERASE CONTROL of CREATE CONTROL TEXT in a loop with some DRAW LINEs on the screen will no longer give error 46 - object already exists.

  70. If the SAVE TO of a listbox has 50 or more chars, and then click on a GET, CA‑dBFast will no longer GPF.

  71. Clicking incontent in another window will now make that window the active window.

  72. The background of a radiobutton or checkbox text is now the same size as the text.

  73. Using SET TALK ON and indexing when there is a created window on the screen will no longer result in the indexing gas gauge not the top window.

  74. The BACKSPACE key will now return a keyboard event.

  75. Replacing a field on a RLOCK()ed rec with an index open, and not connected to a LAN will no longer GPF.

  76. Disabling a control will no longer result in the TAB sequence stopping before the disabled control.

  77. Disabling a button when clicked on, will no longer result in not being able to TAB to any other controls.

  78. Replacing a field on an RLOCK()ed record, when not attached to a lan will no longer give a 'Lock Required' error.

Visual Designer (8 corrections)

  1. If a design is created with 3 databases, for example, and all three databases are used in a view, if a popup window is called using the second or third database, the generated code will no longer try to select area 1 instead of the correct area 2 or 3, hence overwriting the initial database in area 1.

  2. Changing a button in a form from an action that does not have a child window to another action that also does not have a child window will no longer remove the entire tree from the design tree.

  3. The designer no longer incorrectly gens code that closes the database before it closes the window containing the active GETs.

  4. If a form exists in the warehouse, it can now be selected by double-clicking on it.

  5. Cannot incorrectly create a database in the dictionary that start with numbers.

  6. Can now delete a form in the warehouse even if there are no forms in the design tree.

  7. Designer will now correctly use the '@' for underlining a menu item, not '&'.

  8. Now able the enter more than one character in an editbox that has it's SAVE TO a memory variable.


 

Version 2.0B

Workbench (61 corrections)

  1. CREATE CONTROL FIELD with the VIEW parameter will not allow the user to edit the data.

  2. CREATE CONTROL BROWSE with an index, hitting the DEL key and then the ESC key on the first record in the field will no longer give an Application Error.

  3. CREATE CONTROL FIELD on a CREATE CONTROL BROWSE with a valid function that returns a .f. value and an error clause, hitting ESC instead of RETURN and then hitting OK at the error box will no longer cause an application error.

  4. CREATE CONTROL FIELD on a CREATE CONTROL BROWSE with a valid function that returns a .f. value, after hitting OK at the error box, the cursor will now return to the correct field.

  5. The VALID function of a CREATE CONTROL FIELD will now get called if pressing ENTER to go to the next field if it is not the last in the list.

  6. Database/Browse Data and resizing the browse window so that the bottom record is only partially visible will now scroll properly.

  7. Clicking the close box on a CREATE CONTROL BROWSE will now produce an event 5.

  8. CREATE CONTROL BROWSE with a style of NOTRACK, paging down to the very end of the file and then dragging the thumbwheel to the very top, the screen is now refreshed properly.

  9. CREATE CONTROL BROWSE with a filter set will only show a records that are in the filter.

  10. The thumbwheel of a BROWSE is now updated properly when a SEEK is done.

  11. Canceling a report type when going into CA‑RET from the visual designer and then choosing the report again will no longer give two file chooser windows.

  12. Assigning a view to a report and then deleting that view will no longer produce a "Meteor shower" error message.

  13. Using a CHAIN with an SAY GET CHECKBOX command and a READ SAVE command will now allow the checkboxes to be changed.

  14. Using SET FIELD TO followed by DELETE and PACK will no longer result in lost data.

  15. Error 189 now has a valid error message.

  16. MEMSIZE of 61440 is accepted in both the dbfast.ini and a linked applications .ini.

  17. Selecting database/structure/modify structure will now access the current working directory.

  18. If a memo field contains text, and pass the return value from MEMOLINE() to a multi-line GET EDITBOX, you can now type in the editbox.

  19. The VIEW parameter of an @GET statement will no longer allow the user to input data into the GET field.

  20. Opening two databases together, adding a blank record to each of them, doing a DELETE ALL on the second database, only with SET DELETED ON and setting a filter on the first database will no longer cause an application error when a CLOSE command is issued.

  21. Using the SET FILTER command with two database fields where one of these fields is empty will no longer cause an application.

  22. Passing a field name to a multiline GET EDITBOX will now allow you to type in the GET if the field is empty.

  23. Using the VIEW parm on a GET from a database with a READ SAVE will no longer result in a Application Error if run twice in a row.

  24. Changing the text in a GET field and using a READ SAVE command will now save the data if the mouse is clicked on a button.

  25. CA‑dBFast will no longer allow an index key of greater than 100 characters. 100 characters is the index key limit.

  26. TABs are now being expanded in memo fields.

  27. The PICTURE clause will now display static characters while typing data in a GET field.

  28. The @BZ picture clause will not produce multiple dollar signs ($) when data is displayed for it.

  29. Using CREATE CONTROL FIELD with a picture clause will no longer show the picture clause in a GET if the contents of the GET is deleted with the DEL key, and then DEL is hit again.

  30. The Y picture clause will now display a Y instead of a T for a logical field.

  31. Using a picture clause of '999.99' will now let you hit the '.' to move to the decimals section.

  32. Hitting ENTER in a GET that already has data in it, and a picture clause of '(###)###-####' will no longer cause the data to be removed from the GET.

  33. Picture clause '@Z#,###.##' will now let you type the decimal point as the first character.

  34. @SAY commands are now being refreshed after an application is minimized and then restored.

  35. After clicking on the control box of a window, the window is now selected.

  36. Repeatedly executing DDE commands will no longer lose system resources.

  37. SELECT WINDOW of a window that has a GET and was on a READ, after another window was created that has a GET and a button and also was on a READ will no longer result in a GPF.

  38. Opening and closing a BROWSE will no longer eventually use up all system resources.

  39. Using a DBF with an index, CREATE CONTROL EDITBOX with the save to from the DBF, then skip will no longer result in a GPF.

  40. Hitting UP arrow on a BROWSE that has a SET FILTER with the FIND option after scrolling down then going to the top of the DBF will no longer GPF.

  41. Sorting four or more fields in a database is now correct.

  42. Opening a GET on a memofield in a created window, then clicking on the created window will no longer lock CA‑dBFast.

  43. SKIPping past the EOF() will bring up DEBUG. If you hit 'Exit Program', however, it will now properly exit the app.

  44. CREATE CONTROL BROWSE with STYLE POPUP in a window, then hit EXIT or click in the created window no longer locks the application.

  45. Using a REPLACE or UPDATE CONTROL in a valid of a CREATE CONTROL BROWSE will no longer lock you in the valid, repeatedly calling the valid.

  46. A DBF with a filter set passed to a BROWSE will only show the records in the filter.

  47. BROWSE will now show the correct current record.

  48. With a CREATE CONTROL BROWSE open, and skipping through the DBF, if you hit a deleted record and SET DELETED is ON, the BROWSE will now skippast that record.

  49. If a filter is set on a DBF so that it does not contain any recs, then a CREATE CONTROL BROWSE is opened, then an UPDATE CONTROL ALL is issued, CA‑dBFast will no longer GPF.

  50. Passing an array that contains strings that are greater than 256 chars to a CREATE CONTROL RADIOBUTTON will no longer cause a GPF.

  51. Trying to SHOW CONTROL of an object after the 'Long Delays for Printing' box comes up will no longer result in a 'Referenced Object not Found' error.

  52. Passing an undefined variable to the TYPE() function in an executable application will no longer give an error of Undefined Variable.

  53. Deleting the last record in a browse with SET DELETED ON, will no longer lock the app if a new record is then appended.

  54. LOCATE FOR with CONTINUE will no longer GPF.

  55. MOD() with a denominator of zero will no longer GPF, instead it will give a DIVIDE BY ZERO error.

  56. Closing a browse window before a corresponding picture or memo window is closed will no longer GPF.

  57. Typing data into a GET will now overwrite all the old data, unless the cursor keys are used.

  58. No longer receive RECORD LOCKED or LOCK TABLE FULL when appending blanks and replacing data on a LAN.

  59. SHIFT+TAB or CTRL+TAB will no longer lock the app.

  60. PACK, REINDEX, COPY TO or APPEND FROM will no longer remove international characters.

  61. A POSTEVENT() will no longer be lost if the window it was posted in is closed, and the event was not yet processed.

Visual Designer (12 corrections)

  1. Can no longer have an underscore as the first character of a form name.

  2. Choosing File/Save from a popup window in the designer will no longer still ask to save the design if the user immediately chooses a File/Exit.

  3. Using a VALID expression in the structure editor will now generate the VALID in the code.

  4. Changing the view for a form using the editbox and lower case will result in that view still accessible in the form.

  5. You can make a buttons text the same as static text on the screen.

  6. Having a copyright notice longer than 32 chars will let the user back into the forms.

  7. Clicking on the tool bar buttons display a message about what item was clicked on.

  8. You can close the 'Name/Rename Form' dialog box by double-clicking on the system box.

  9. If you do not use a database in your design, you will no longer receive 'no data file in use' error.

  10. Selecting 'Control Box' for a window in the Popup Forms Editor will no longer cause an error.

  11. Can now delete the last index saved in the database structure.

  12. Will now get a warning if a database already exists when generating the application.


 

Version 2.0A

Workbench (10 corrections)

  1. Creating a CHECKBOX from within a chained program and then issuing a READ SAVE will allow the checkboxes to be updated properly.

  2. The SET COMPATIBLE command will now work correctly in conjunction with the SUBSTR() function.

  3. Placing a GROUPBOX, BUTTON, and a GET on the screen and pressing the up arrow will switch control to the correct object.

  4. If multiple databases have been opened with filters, a DELETE ALL command will now delete the correct records and not give an error message.

  5. Using a SET FILTER command with two databases open and one field being empty will not result in an error message.

  6. The CENTER() function will now work correctly with several other controls on the screen when the TAB key is selected.

  7. The ADIR() function has been modified to return a maximum of 512 files. The previous maximum was 256.

  8. Changing the text of a GET field and clicking the mouse in the "incontent" area of a window will now correctly save the data in the GET field.

  9. Using RECESSED style of a GET will now allow the user to TAB through several GETs correctly.

  10. Using the BORDER+INDENTED style of a GET will allow the user to TAB through several GETs correctly.

Visual Designer (18 corrections)

  1. Canceling a report type when going into CA‑RET from the designer will only give one file chooser window.

  2. Deleting a view from a report and then trying to start that report will give an appropriate error message.

  3. In the Data File Structure Editor, the display formats will now be saved properly after the picture clause is changed.

  4. Defining an action as 'do dBProcedure' will enter the correct 'SET PROCEDURE TO' command.

  5. A design tree with the main window as the root and a popup window off of the main window will save all nodes in all cases.

  6. Previously, in certain situations, a node would be lost from the design tree.

  7. Changing the default font for a text control will not generate extra lines of code.

  8. Changing the data file set of a form from a VIEW to a FILE will allow the user to change back to the VIEW.

  9. Upon generation of BEFORE CODE, AFTER CODE, or a dBCode, multi-line code will be generated properly.

  10. After generating, compiling, and running code from a pulldown menu system, hitting a key not assigned as a shortcut key will not end the application.

  11. The RANGE parameter will be generated properly when it is set from within the designer.

  12. Using large bitmap files from the designer would generate an error when the program was run. The LOAD IMAGE command is now used instead of the DISPLAY IMAGE command.

  13. Canceling File/Open Design will keep the previously opened design open.

  14. Deleting a view name from the Options window and then choosing another view name will update the Options window correctly.

  15. The DO PROGRAM action is now working correctly when it is clicked on within the design tree.

  16. Adding more than 14 files to a VIEW of a design will warn the user that the limit has been reached instead of giving an error.

  17. Using a popup window and running the generated code will return out of the popup window routine and will close the window. Previously, the window was not being closed automatically.

  18. Using COPY FROM to copy a popup from another design will retain all items from the design tree.


 

Build 3

Workbench (28 corrections)

  1. SET SOFTSEEK ON now returns .T. for EOF(), .F. for FOUND() and bottom for record pointer if a match is not found. Before, it was returning .F. , .F. and top respectively.

  2. CREATE FROM command no longer gives an application error if the file to be created from does not exist.

  3. GETSCROLL() function now returns the proper value for Horizontal scroll bar.

  4. PAGELTH() function now accepts 0 as an argument.

  5. TOLONG() function now compiles.

  6. ESC() function now sends codes correctly for arguments longer than 100 bytes.

  7. @...GET with a FOR\WHEN .F. condition no longer gives an application error.

  8. Using an @...GET EDITBOX command with a fieldname as the SAVE TO variable now allows the user to type into the editbox.

  9. If CA‑dBFast is installed in a directory which has a period (".") in its name, include files are now compiled.

  10. Passing a memo field as parameter to a function no longer produces an application error.

  11. Using a large memo field with the @... SAY command no longer results in an application error.

  12. PICTURE "9" no longer allows SOME non-numeric characters.

  13. RECTANGLE with FILLED parameter now redraws the text objects. However, using plain text (without font) still has a problem. Use text with font on such a rectangle.

  14. If a List Box entry is a substring of a previous entry, focus no longer jumps to the first entry. Combo Box is also fixed.

  15. UPDATE CONTROL no longer causes the Combo Box to move the focus to the first entry regardless of which entry was selected.

  16. Using a PICTURE clause of "@!" on a CREATE CONTROL FIELD converts all characters to uppercase correctly. It failed if the field was larger than 50 characters.

  17. INSERT BLANK BEFORE when used with CREATE CONTROL BROWSE no longer deletes the record if there was only one record.

  18. Maximum number of chains is increased to 4096. However, you can only chain 24 levels deep.

  19. @...SAY VarC GET Var - now puts a space between VarC and GET field by default. This is changed for dBase III Plus compatibility.

  20. CREATE CONTROL BROWSE now allows more than 50 characters of a character field to be displayed at once.

  21. If ENABLE MENU command is used before setting a menu, it now gives an error.

  22. Using SHOW WINDOW command on hidden windows which have GETs in them no longer gives an occasional error 186.

  23. The vertical scroll bar on a CREATE CONTROL BROWSE window works correctly with an index file and the thumbwheel is dragged to the bottom of the scrollbar.

  24. CREATE CONTROL BROWSE when the browse window displays one record the data is displayed correctly.

  25. A Picture clause "$999999.99" on a CREATE CONTROL FILED in a CREATE CONTROL BROWSE now displays properly.

  26. The GETINT() function used in conjunction with a PUTINT() function now works properly.

  27. The SCROLL PICTURE clause is now working in conjunction with other picture clauses.

  28. The default string buffer size has been increased from 16,000 bytes to 32,768 bytes to eliminate certain "Out of String Space" messages.

Visual Designer (20 corrections)

  1. "Array element out of bound" error was eliminated: when adding the 11th level to a Tree. The limit is 10 levels deep in the designer.

  2. "Array element out of bound" error was eliminated: when adding the 100th element to a design. The limit is 100 forms.

  3. You may now correctly cancel a new design if you did not save your old design.

  4. The design tree is now refreshed properly after after removing a design from the design tree.

  5. "Error 46" was eliminated when trying to create 101 buttons in the designer.

  6. You can now correctly copy a form from another design via the warehouse.

  7. You may now delete the root node of a design copied from the warehouse.

  8. It is impossible now to delete all fields from a MEMORY file.

  9. "Memory Out of Bounds" errors was eliminated after creating 10 menu items, changing one to a submenu, adding a new submenu, then trying to change the submenu back to a menu.

  10. You may now correctly create a popup window with a view containing an expression and CANCEL in the expression parameter window.

  11. You may now correctly create a data dictionary which already exists and press on the OK at the override prompt.

  12. It is possible now to create a dictionary in a subdirectory that contains a period.

  13. You may now correctly create an index file, enter the first index and expression and then delete it.

  14. You may no longer edit an empty structure created by clicking on FILE/NEW, then dictionary and later removing the dictionary.

  15. "Object not found" message has been corrected when creating a main window with two buttons with assigned popups and switching them via the warehouse.

  16. Index expressions now accept logical fields.

  17. The new dictionary dialog box has been changed from "Save Dictionary AS" to "New Dictionary".

  18. You will now receive an error dialog when importing a structure to a file name which already exists.

  19. It is possible now to have a menu name that is a substring of another menu name.

  20. Numbering scheme for objects created on screen has changed.


 

Builds 1 and 2

Workbench (16 corrections)

  1. Bitmaps in a window are now being erased with the ERASE command.

  2. In a SET FIELDS TO command with more than 5 (6 in certain cases) fields in the list, you no longer produces an error message saying that it is not a database file or field.

  3. In the Editor if Autoindent is OFF, it now scrolls past the bottom of the screen.

  4. @...SAY...GET with VALID is now calling the valid function correctly. This also caused GETNO() function to return wrong value when there were more than one GET.

  5. @...SAY and ? commands are now expanding embedded TAB characters.

  6. RADIO BUTTONS in a GROUP BOX, using TAB or REVERSE TAB now selects the correct RADIO-BUTTON.

  7. Creating new programs in the Editor and selecting the default names (program1, program2, ...) each time would eventually create program10.prg which has more than 8 characters in the filename.

  8. Random Application Errors have been corrected when choosing Editor Menus, closing Command mode etc.

  9. String concatenation with embedded function calls would not concatenate the string correctly.

  10. If a memo field has leading spaces, it would be trimmed when displayed using a ? command. @...SAY however would display the spaces. Now both display spaces.

  11. DELETE and RECALL ALL commands before a data file is opened no longer produce an application error.

  12. SET PRINTER TO no longer produces a sharing violation when SHARE is loaded. SET PRINTER TO < 1 | 2 | 3 > is now working reliably after multiple executions.

  13. In the Editor, using TAB key increases the column number by the Tab width. It now shows the correct column number if a fixed pitch font is used.

  14. In the Editor in overwrite mode, the caret (cursor) has been changed to a block rather than a vertical line.

  15. In the Editor, if the user selects all the text, does a copy, paste and then select all the text again and does a copy, an application error no longer intermittently occurs.

  16. In the Editor, CR LF (Carriage Return Line Feed), LF CR and just CR alone are all treated as line terminator now.

Visual Designer (1 correction)

  1. IVAD.LIB (under SAMPLES\IVAD directory) has been changed to avoid getting "Object already exists" error when a new control is placed in the form.