dBASE Plus release 2.70.1 & 2.70.2
_app Object
QAID:None
Improved functioning of _app.allowYieldOnMsg so that when set to True, dBASE Plus will distinguish between a WM_CLOSE sent to a form or a WM_CLOSE sent to the _app.frameWin.
If sent to _app.frameWin, dBASE Plus will initiate a WM_QUIT process.
If sent to any other window, the window will be closed.
In addition, added ability to process non-client area messages for non-client area paints, mouse moves, clicks, activation's etc. on a window's border area.
Debugger
QAID:6676
Debugger Added ability to use Mouse Wheel to scroll Variables window and Watch window in the dBASE Plus Debugger.
Memo and OLE Fields
QAID:None
Fixed regression that could cause errors when accessing memo and blob fields by ensuring that structures used in dBASE Memo and OLE Fields and Paradox OLE fields are configured identically to versions of dBASE prior to 2.70.
Navigator
QAID:None
Fixed regression in Navigator where double clicking on a filename (to open or run the file) sometimes causes dBASE to become lock up or wait for another mouse click.
Grid
QAID:6666
Fixed regression in grid property, defaultMemoEditor, so it can be changed to 1 instead of the default 0 (zero).
QAID:6667
Fixed regression in Grid.lockedColumns property so it allows a new value to be assigned to it.
This change also fixes Browse.lockedColumns which had the same problem.
Combobox
QAID:None
Fixed combobox.maxLength property so its value can be set successfully
QAID:6689
Fixed problem where combobox onChange() event fired before datalink was updated for combobox.
This caused the lookupRowset or lookupSQL field to be out of step with the current value of the combobox within an onChange event handler.
With this fix, the lookupRowset or lookupSQL assigned to the datalinked field will match the current combobox value within the onChange event.
Rowset
QAID:None
Fixed regression in rowset.masterChild property so its value can be changed
QAID:6690
Fixed regression in rowset.findkey() and rowset.findkeynearest() that caused a Memory Access Violation when passing multiple search strings to search a table that uses a compound index key.
QAID:5878
Fixed rowset.goto() so that it sets rowset.indexname back to index stored in bookmark if rowset.indexname was different from index in bookmark.
Note that dBASE was already doing this internally by setting the active index on the rowset's BDE cursor to the bookmark's active index.
QAID:None
Fixed behaviour of rowset.applyLocate() and other rowset filters which sometimes did not work due to a regression in the layout of internal data structures used to setup the filter.
Session
QAID:None
Fixed session.deleteAlias() method so that it can successfully delete a User BDE Alias from the default BDE session.
Previously, it was only able to delete a User BDE Alias from a non-default BDE session.
CLOSE DATABASE Command
QAID:1698
Fixed Memory Access Violation that occurred when issuing:
CLOSE DATABASE <yourdatabase>
command for two times after opening the database via the Navigator
via the following sequence:
In Navigator,
- Click on Tables tab
- Choose DBASESAMPLES
In Command Window
- close database DBASESAMPLES
In Navigator,
- Click on Tables tab
- Choose DBASESAMPLES
In Command Window
- close database DBASESAMPLES
Memory Access Violation or internal error occurs
Form and Subform
QAID:6642
Fixed regression that caused a Memory Access Violation when calling form.release() from form's onClose() event.
QAID:6684
Fixed regression that caused a Memory Access Violation when a modal form calls form.release() in its onClose() event.
QAID:None
Fixed Form and Subform classes so they do not respond to mouse wheel events when their scrollbar property is set to 0 - off or 3 - disabled.
QAID:6664
Fixed regression where an extra vertical or horizontal scrollbar could display inside a form or subform - usually after resizing the form or subform to a smaller height or width. This was especially prevalent in the subform's used in dQuery for the design surface, palette area, and data area.
QAID:6674
When entryfield was first control to get focus at form open, its onLostFocus event was firing during the open.
This fix also fixes duplicate firing and incorrect firing sequence for both OnGotFocus() and OnLostFocus() for forms and form controls when clicking between forms, between controls on a form, or between forms and other tool windows in dBASE Plus IDE.
Class String
QAID:None
Fixed regression that caused string object's toUpperCase() method to skip over uppercasing characters containing umlauts.
Also fixed similar issue with toLowerCase() method.
BDE Configuration
QAID:6675
Improved compatibility of dBASE Plus 2.70.x with earlier releases of dBASE Plus by leaving the BDE Session object's CFGMODE2 setting at its default value of cfgNone except when necessary.
Doing this fixes the reported "Cannot find engine configuration file" error using the test case in this QAID.
Inspector
QAID:6673
Fixed Memory Access Violation that occurred when choosing a type of DATE, TIME, or DATETIME in the Inspector for an Entryfield's Value property when designing a Form in the Form Designer
SQL Query Designer
QAID:6650
Implemented code to detect whether or not dBASE Plus is running with administrator rights (on Vista, Windows 7 or newer version of Windows), i.e. is running elevated.
If yes, the SQL Query Designer will be allowed to run. If not, a message will display instructing user to run as administrator in order to run the SQL Query Designer.
Image Paths
QAID:2368
Fixed issue where opening a form in form designer results in image paths being automatically changed to include full path to design time image file or source alias to design time image file.
Instead, dBASE will attempt to determine source alias for a selected image file only when selecting file via the image selection tool.
Otherwise, dBASE will now leave property values as entered in source code.
The following properties have been fixed:
Pushbutton.upbitmap, downbitmap, focusbitmap, disabledbitmap
Image.datasource
Toolbutton.bitmap
Entryfield and Spinbox
QAID:6678
Fixed alignment of spinbox values when spinbox picture contains 2 commas, function property contains 'J' to right align value, and spinbox value only contains 1 comma.
Values with no commas or 2 commas were correctly right aligned.
Values with only 1 comma left some space along the right end of the control.
This fix should also fix a similar issue with entryfield controls.
QAID:6683
Fixed lockup that occurred when using SET CURRENCY TO " " when a numeric field is datalinked to a spinbox control.
Substr()
QAID:42/226
Modified substr() function so it does not trigger an exception for an out of range start position if an ON ERROR handler is in effect.
If an ON ERROR handler is not in effect, and SET TALK is ON, a warning will be sent to the output pane of the Command Window.
ActiveX Control
QAID:6695
Fixed ability of dBASE Plus to correctly pass a license string to an ActiveX control both at design time and at runtime.
This should enable dBASE to create and activate an ActiveX control without triggering an error or a dialog requesting a valid license string
QAID:None
Improved code used to instantiate a preview of an ActiveX control in the dialog used to select an ActiveX control within the Form Designer.
Ensured control's license string is allocated on system heap before passing its pointer to routines that instantiate the preview control.
Editor Object
QAID:4301
Fixed Editor control's key() event so it can once again be used to modify
characters typed into an Editor object.
QAID:2972
Fixed nPosition parameter passed to key() event for editor object.
Previously, it sometimes returned the column number within the current line where the entered character was to be inserted.
Other times it would contain an invalid value.
With this fix, nPosition will contain the position within the text string accessed via the editor's value property.
The position value takes into account the end of line characters as well (a carriage return and linefeed) at the end of every paragraph.
Menu Object
QAID:6686
Fixed Memory Access Violation when clicking on menu option for a menu attached to _app.frameWin when checking whether or not to fire form's onSelection() event.
Miscellaneous
QAID:6692
Fixed cause of "False Parameter" error that occurred when loading seeker.cc from the formcontrols folder.
BUILD Command
QAID:6693
Fixed path used by BUILD command when creating temporary file: VDBEXE.RES so that file is created in the same folder as the .exe being built.
This prevents triggering the error: Access Denied VDBEXE.RES which could occur if the current dBASE directory is set to a folder where the current user does not have create or write access.
QUIT Command
QAID:6691
Fixed regression in QUIT command that prevented it from working when a modal form is open.
Debugger
QAID:None
Fixed synchronized scrolling bug in debugger's Variables window that occurred when dragging vertical scrollbar with mouse - the values pane would scroll but the variables pane would not move.
QAID: 6657 - Fixed ability to run a code signed application
.exe built with dBASE Plus 2.70
QAID: 6648 - Fixed regression in QUIT command so it:
* stops execution of procedure and shuts down current instance of interpreter
* triggers any open forms to close and fire their beforerelease events
* triggers frame window (if any) to close
* terminates dBASE Plus or Runtime
* returns exit code if any
QAID: 6651 - Fixed listbox in Set Component Order dialog
so it no longer moves an item to the bottom of the list when an item is
clicked on.
QAID: 6658 - Fixed regression that prevented bitmaps assigned
to the checkedBitmap and uncheckedBitmap properties of a menu object from
being displayed.
QAID: 6656 - Fixed setrange() on a numeric field and rowset.findkey()
(also affects XDML: FIND, SEEK, and SET KEY when using a numeric field
in an index key)
QAID: 6636 - Fixed "Data Type Mismatch" error that
occured when attempting to link a master and detail rowset via an autoincrement
field in one table and a numeric field in the other table. This change
also prevents using a Memo field to link master and detail tables which
could result in dBASE locking up or causing a Memory Access Violation.
QAID: 6655 - Fixed .mem file support in 2.70 so it is compatible
with dBASE Plus 2.62 and earlier versions
QAID: 6660 - Fixed "Invalid parameter" error that
occurred when attempting to delete a file from the Other tab of the Navigator.
QAID: 6577 - Added call to exclude plus.exe and plusrun.exe
from DEP when local policy setting allows program to exclude itself.
QAID: 6663 - Fixed regression in Grid that prevented custom Grid columns from displaying in a container on a notebook when the grid is built while switching notebook pages.