UPGRADED FEATURES from 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.  

 

  

FIXES from 2.70.2

 

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.

 

 

Fixes from 2.70.1

 

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.