CA-dBFast 2.0D  US Version - Computer Associates International

Builds 1 and 2 - 16 Workbench, 1 Visual Designer corrections
____________________________________________________________
////////////////////////////////////////////////////////////

WORKBENCH

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 <filename> 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) 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.


BUILD 3 - 28 Workbench, 20 Visual Designer corrections
____________________________________________________________
////////////////////////////////////////////////////////////

WORKBENCH

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

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.


VERSION 2.0A (Released as International version ONLY) - 
        10 Workbench, 17 Visual Designer corrections
_________________________________________________________
/////////////////////////////////////////////////////////

WORKBENCH

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

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.  Previously, in certain 
   situations, a node would be lost from the design tree.

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

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

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

9) 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.

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

11) 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.

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

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

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

15) 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.

16) 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.

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


VERSION 2.0B - 61 Workbench, 12 Visual Designer corrections
_________________________________________________________
/////////////////////////////////////////////////////////

WORKBENCH

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 skip
    past 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

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.0C - 78 Workbench, 8 Visual Designer corrections
_________________________________________________________
/////////////////////////////////////////////////////////

WORKBENCH

1) Setting a filter on a large DBF, doing a BROWSE, then hitting ESC to
   exit 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) 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 <datefield>,<otherfield> 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

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.0D - 63 Workbench, 6 Visual Designer 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 trying
    to 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(<num field>))... 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) 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 RRECTANGLE 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

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.0D-1 - 1 Workbench
_________________________________________________________
/////////////////////////////////////////////////////////

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

VERSION 2.0D-2 - 1 Workbench
_________________________________________________________
/////////////////////////////////////////////////////////

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


