dBASE Plus release 2.8
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 was broken due to differences found in MS Visual C++ libraries compared with Borland C++ compiler.