CA-dBFast
A dBase-compatible application development system
Latest Release Notes
CA-dBFast 2.0D - US Version
Latest Release Notes > Builds 1 and 2 > Build 3 > Version 2.0A > Version 2.0B > Version 2.0C > Version 2.0D > Version 2.0D-1 > Version 2.0D-2
Version 2.0C
Workbench (78 corrections)
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.
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.
Using a large filtered DBF in a BROWSE, hitting CTRL+END, then use scrollbar to get to the beginning, will now refresh properly.
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.
The current record will now be displayed when BROWSE is used, even when a GOTO was issued prior.
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.
If a rec is DELETED when a BROWSE is open, the record is now completely removed from the BROWSE.
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.
A CREATE CONTROL BROWSE will now always show the correct rec number if a filter is set.
Hitting ESC in a CREATE CONTROL BROWSE with style NOTRACK, will no longer cause 'invalid window handle in VIO1.C'.
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.
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.
APPEND BLANK after GO BOTTOM will now show the correct rec in a browse.
The thumbwheel of the browse will now show the correct position.
If the BROWSE has STYLE VIEW+POPUP, the 'Copy, New...' menu items will not be shown.
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.
Radio buttons will now use the color param for the background.
Using the following: INPUT to VAR1 followed by WAIT and WAIT will no longer ignore the first WAIT command.
The SET GRAPHIC INPUT TO 'CAPTURE' command now works correctly.
The ON KEY command will now work when the focus of a window is on a CREATE CONTROL BROWSE.
Using a valid clause on a CREATE BUTTON command in association with an ON ERROR routine will no longer cause an application error.
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.
SET FORMAT TO followed by an APPEND will now append records.
SET CONSOLE OFF will now turn off the output to the screen correctly.
COPY RECORD TO will no longer cause a GPF if it is copying to a brand new DBF created with COPY STRUCTURE TO.
Using the SUM command with the TO parm incorrectly using a DBF field will no longer result in a GPF.
COPY FILE will now copy a DBF that is in use even with SET EXCLUSIVE OFF.
APPEND BLANK will now append a new blank record, it will no longer make a copy of the last record that was selected.
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.
The compiler will no longer GPF on this code: DEFINE PROGRAM PROG1, CHAIN PROG2.
The ABOUT param of TALK TO will now accept a macroed var.
The editor no longer allows you to type CTRL+K, which would insert the control char into the program, causing a compiler error.
Open a .txt file, minimize it, open a .prg file, close .prg, select Save/Compile will no longer result in a GPF.
Now receive 'Error 111 - expected a string expression' if you pass a numeric in the SAVE TO of a CREATE CONTROL RADIOBUTTON.
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.
The SET EVENTMSK TO 7 now ignores the event 10 for a mouse click in the client area.
The cursor will now show up in GET fields when the EVENTMSK is set to 255.
Using MODALEVENT() with a CREATE CONTROL BROWSE, a keyboard event will be recognized after ESC is hit.
An event is generated when the EXIT is clicked on in a browse menu.
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.
The CTOD() function's upper limit is now consistent with CA-Clipper.
CTOD(" ") will no longer produce inconsistent results.
The READVAR() function will now return the correct GET variable. >
The GETVAR() function now works when in a valid from GETs that are using array elements.
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.
UPDATE GETS on a multi-line GET will no longer fill the GET with the field padding, preventing entering further text.
Returning a .F. from a valid will now place the cursor at the beginning of the GET.
The message box that is brought up by a GET with RANGE and ERROR parms is now modal.
An image placed on the screen with DISPLAY IMAGE can now be removed with an @ CLEAR TO.
The context sensitive help in the editor, by using SHIFT+F1, now works.
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.
CLOSE CONTROL of an RRECTANGLE control will now release system resources if the FILLED param is used.
Displaying and removing an image in an .EXE many times will now release system resources.
Displaying and removing an image using DISPLAY IMAGE will now release system resources.
Every time CA-dBFast or CA-dBFnrun is run, system resources are no longer lost.
Repeatedly creating and closing a type 260 window, one with a shadow, will no longer lose system memory, about 3K for every window.
@ GETs with the FONT parameter will no longer lose system resources.
SET EXCLUSIVE OFF and multiple APPEND BLANKs will append all recs.
Typing in the decimal point in a GET that already has data in it will now remove the old data before the decimal point.
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.
With a picture clause of '99,999.99', the comma will no longer show up if the number is less than the comma value.
Hitting the 'OK' button in the Print dialog box several times will no longer cause a GPF.
Can now print BMPs to a printer.
Sorting on three fields in a large DBF will no longer result in a GPF.
SORT ON , TO FILE on a large DBF will no longer cause a GPF, since mixed fields are no longer allowed.
Sorting on a DBF that has a SET FIELDS TO applied will no longer destroy the data in the DBF.
Can now @ SAY to the 25th row of the screen in a 640x480 setup.
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.
If the SAVE TO of a listbox has 50 or more chars, and then click on a GET, CA-dBFast will no longer GPF.
Clicking incontent in another window will now make that window the active window.
The background of a radiobutton or checkbox text is now the same size as the text.
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.
The BACKSPACE key will now return a keyboard event.
Replacing a field on a RLOCK()ed rec with an index open, and not connected to a LAN will no longer GPF.
Disabling a control will no longer result in the TAB sequence stopping before the disabled control.
Disabling a button when clicked on, will no longer result in not being able to TAB to any other controls.
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)
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.
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.
The designer no longer incorrectly gens code that closes the database before it closes the window containing the active GETs.
If a form exists in the warehouse, it can now be selected by double-clicking on it.
Cannot incorrectly create a database in the dictionary that start with numbers.
Can now delete a form in the warehouse even if there are no forms in the design tree.
Designer will now correctly use the '@' for underlining a menu item, not '&'.
Now able the enter more than one character in an editbox that has it's SAVE TO a memory variable.