ACTIVEX

QAID: None

Modified code that handles passing parameters and return values to or from activeX methods.  

These changes may improve support for passing and receiving variants to/from activeX methods in some situations.

 

COMMAND LINE

QAID: 6747

Fixed support for -C command line switch for the dBASE Runtime. It was ignored when useUACPaths was True.

Fixed initialization of _app.currentUserPath, _app.roamingUsersPath, and _app.allUsersPath in dBASE Plus IDE (plus.exe) when passing -C command line switch to plus.exe.

 

DEO

QAID: 6745

Fixed DEO search routine in the dBASE Runtime which was failing to find object files located on DEO search paths stored in application's .ini file when _app.useUACPaths is true.

Found incorrect path was being used to locate an application's ini file when useUACPaths is true

 

FORM DESIGNER

QAID: 6751

Fixed Form Designer menu option File | Save As HTML... so it will be enabled when Form Designer is in focus.

QAID: 79

Enabled streaming for EntryField, ComboBox, Editor, and ListBox into HTML file when "Save As HTML" is chosen in Form Designer.

 

ODBC SOCKET

QAID: 6740

Disabled code that initialized a connection between dBASE PLUS and ODBC32.DLL.

This code was informing ODBC32.DLL that dBASE supported the ODBC Version 2 API which is no longer accurate - as dBASE supports ODBC Version 3 drivers.

 

DATE OBJECT

QAID: 6756

Fixed GPF that occurred if Date object's sethours() method is called with parameter outside the range of 0 thru 23.

If an invalid hour value is passed, a Value Out of Range error will now be triggered.

Similarly, the SetMinutes() and SetSeconds() methods will now trigger a Value Out of Range error if they are passed a value outside the range 0 thru 59.

 

FORM COMPONENTS

QAID: 6762

Fixed pushbutton with speedBar = true and systemTheme = false, so it pops back up after being clicked with mouse.

QAID: 2410

Fixed Editor object's key() event so that returning false blocks keystrokes from being added to text within Editor.

Current fix works for keyboard characters but not for arrow keys, PgUp, PgDn, backspace, or delete keys.

QAID: 6742

Fixed MAV when dragging scrollbar downward in Editor when datalinked to file with more than 32768 lines.

QAID: 6734

Fixed inconsistent behaviour of keyboard() method in dBASE Plus 2.70.x.

Inconsistency was due to an uninitialized variable which is now fixed.

QAID: 6736

Fixed regression in speedtips support so that speedtips will display for visible components.

This was broken when previous change was made to prevent speedtips for non-visible components from displaying (where visible = False).

QAID: 6737

Fixed lockup that occurred in dBASE Plus 2.70.3 when opening a form containing a grid with integralHeight set to True.

This problem was most likely to occur if subclassing grid from a parent grid containing integralHeight = True.

QAID: 379

Fixed form.print(true,false), so line objects and shape objects are scaled correctly when printed.  Previously, these objects were printed at an extremely small scale in the upper left corner of the printed page.

 

PLUS IDE

QAID: 6771

Updated graphics for dBASE Plus 2.8

For icon, splash screen, and about dialog for plus.exe

For icon and about dialog for plusdebug.exe

QAID: 6774

Added ability for dBASE PLUS to update a user's private folder tree after installing an updated build.

During startup, dBASE PLUS (plus.exe) will check if the current build number matches a build number stored in the registry for the current user.

If no build number is found in the registry or its found but has a lower build number than the current build number, dBASE will now run:

   :DBSTARTUP:INITNEWUSER.PRO

INITNEWUSER.PRO contains code to setup a new user's private folder tree or to update an existing user's private folder tree.

If the registry key is missing, dBASE Plus will create it.

If the registry key already exists, but contains a lower build number, dBASE will update it to the current build number.

 

The new registry key is:

   HKEY_CURRENT_USER\Software\dBASE\PLUS\Series1

         UserFolderBuild   REG_SZ   nnnn

         where nnnn is a dBASE Plus build number

 

SOURCE EDITOR

QAID: 6758

Fixed Copy / Paste of large text block in sourcce editor so it no longer triggers a GPF when block is more than 32768 lines long.

QAID: 6777

Fixed Source Editor paste logic to allocate a buffer on the system heap instead of on the stack during several steps of the paste operation.

This partially fixes the limitation on how large a block of text can be pasted into the Source Editor.

 

REPORT / REPORT DESIGNER

QAID: 6760

Added ability to unselect a component on a report in the Report Designer when holding down the shift or control key with multiple components already selected.

QAID: 6767

Fixed memory leak in Report Designer that occurred when selecting and manipulating multiple components on a report.

 

LABEL / FORM / TABLE WIZARDS

QAID: 6765

Upgraded the Label Wizard, the Form Wizard, and the Table Wizard to open tables used by these wizards (such as labe*.db) from user's private folder tree rather than from dBASE installation tree when _app.useUACPaths is true.

If _app.useUACPaths is false, the wizards look for their tables under the dBASE Plus home folder (as returned by the home() function).

Also modified routine used at dBASE startup to set and verify the _dbwinhome system variable. Changed logic to check for the existence of the BIN folder instead of the DESIGNER folder. This was necessary since the DESIGNER folder will no longer be installed in the _dbwinhome folder when _app.useUACPaths is True - such as when installing on Windows 7.

Note that _dbwinhome should be set to the parent folder to the folder containing plus.exe.

 

TABLE / DATABASE SECURITY

QAID: 6769

Fixed default location for DBSYSTEM.DB file when _app.useUACPaths = True.

The new default location is the folder returned by: _app.allUsersPath

When _app.useUACPaths = False, the default location is the path returned by home() or the path contained in _app.exename.

In the Database Security dialog:

       (File | Database Administration | Security...),

When user starts to enter a password, dBASE will now check if it is running elevated (with admin rights or not).

If not running with admin rights the following message will display:

   Title:   Insufficient rights to setup Database Security File

   Content: Entering this administrator password triggers creation

            of a Database Security File (DBSYSTEM.DB).

            Restart dBASE as Administrator to complete this dialog

 

DATE / TIME FUNCTIONS

QAID: 6772

Fixed Seconds() function so it, once again, includes hundredths of a second.

This was broken due to differences found in MS Visual C++ libraries compared with Borland C++ compiler.

QAID: 6775

Fixed DateTime() function to set milliseconds when retrieving the current date and time values into an internal structure.

This allows a date object created from a datetime value to include milliseconds which allows: ? datetime().gettime() to return a value that includes milliseconds.

This zas broken due to differences found in MS Visual C++ libraries compared with Borland C++ compiler.