Features and Fixes
August 1, 2005
New Features and Enhancements
Windows XP Theme
- This version of dBASE
PLUS is the first to support Windows XP Themes and Visual Styles.
Upon opening dBASE, you should immediately notice its improved,
more modern-looking interface: notebooks have a subtle gradient
background, buttons are rounded instead of squared and colors
generally appear more coordinated throughout the entire environment.
Your applications can also employ Windows XP Themes, lending
them a more up-to-date and consistent appearance when running
under Windows XP. This is accomplished through the use of a
manifest file, a special XML-based file that enables System
Themes in Windows XP.
For all dBASE PLUS applications, the name of this file is
PlusRun.exe.manifest. It must reside in the same folder as the
dBASE runtime executable (PlusRun.exe)
To disable the XP look in dBASE PLUS, simply remove or rename
the “Plus.exe.manifest” file in Plus/Bin folder. To disable
the XP look in applications you created in dBASE PLUS, remove
the “PlusRun.exe.manifest” file from the runtime folder.
The dBASE PLUS Project Explorer can be used to deploy the
Manifest file for you by checking the “Generate and include
Windows XP manifest file” checkbox on the Inno | Files tab.
We strongly recommend that you use Windows System Themes.
XP System Themes give your users enhanced control over the look-and-feel
of your application and show your programs in their best light
when running in Windows XP.
The System Themes feature is ignored under earlier versions
- QAID: 5389 – Updated
to use Windows XP Visual Styles in built-in tools and dialogs
when running on Windows XP
- QAID: 4311 - Form
controls have been upgraded to auto-detect if Windows XP Visual
Styles are being used and to adjust accordingly
- QAID: 2235 - Ability
to automatically match the background of form components to the
XP Style background of Notebook controls if their colorNormal
- QAID: 5196 - Ability
to override automatic behaviour of PushButton to use Classic or
XP style via new systemTheme property
- QAID: 630 - Ability
to specify how to align an image and text on a PushButton via
new bitmapAlignment property
- QAID: 630 - Ability
to place both text and an image on an XP style PushButton
- QAID: 357 - Added
mouseWheel support in: Source Editor, Grid, Listbox, Browse, Editor,
ReportViewer, Navigator and ComboBox.
- QAID: 5218 - Ability
to differentiate between selected and unselected rows in beforeCellPaint()
and onCellPaint() events via new bSelectedRow parameter
- QAID: 5304 - Ability
to set color of lines between rows and columns via new colorRowLines
and colorColumnLines properties
- QAID: 5350 – Ability
to determine and set the current leftmost grid column via the
new firstColumn property
- QAID: 1498 - Ability
to set the color of the checkmark in a columnCheckbox control
- QAID: 866 - Grid’s
columnCheckbox control now displays the checkbox in all rows of
the grid, not just the current row
- QAID: 2235 - Added
transparent property to Rectangle
- QAID: 5105 - Added
additional built-in mousepointer settings to include the vertical
and horizontal splitter mousepointers.
- QAID: 5106 - Updated
mousePointer option 5 - Size to use the standard Windows crossed
arrows (IDC_SIZEALL) mouse cursor
- QAID: 5328 - Ability
to send default values to GetFont() function. This allows you
to initialize the GetFont dialog with current settings
- QAID: 5089 - Ability
to detect when a report has reached its last page in the ReportViewer
class via the new onLastPage() event.
- QAID: 5084 - Enhanced
error dialog to support display of long error messages.
- QAID: 5195 – Enabled
ability to catch Memory Access Violations in dBL code using try...catch
- QAID: 5478 - Added
ability to turn off enhanced Memory Access Violation trapping
for applications where this caused compatibility problems
Reports / Report
- QAID:4963 - The default
value for band heights has been set back to zero. However, when
creating a new report in the Report Designer, the band heights
for the default groups will be set large enough to make the groups
visible to aid in dragging and dropping components onto the bands.
- QAID:4907 - Default
value of report.autoSort has been set back to true for backward
compatibility. However, when creating a new report in the Report
Designer, autoSort will be initially set to False as this is the
most common setting for it
- QAID: 1226 - Added
vScrollBar property to turn on or off the vertical scrollbar
- QAID: 4997 - Added property maxLength to combobox class and enabled automatic
horizontal scrolling of data entry portion of combobox. By default maxLength is set to 25 characters.
If the combobox is datalinked to a field, then the width of the field is used to set maxLength.
Also, programmer can explicitly set maxLength as needed.
Info in core product files
- QAID: 4865 - Added
the build number, date and optional comments to the version information
viewable via Windows Explorer, Properties option.
- QAID: 5152 - Made
version information viewable directly in Windows Explorer’s Details
View via the “View Menu/Choose Details…” option
- QAID: 5255 - Added
ability to create and deploy a Windows XP manifest file with an
- QAID: 5114 - Added
ability to choose which runtime engine installer files to include
with a deployed application
dBASE PLUS Installer
- QAID: 1696 - Now
sets BDE maxFileHandles to 255 on new installs or if it is less
than 255 at install time
- QAID: 4988 - Now
sets the default dBASE table level to level 7 only if the BDE
is not already installed.
- QAID: 5028 - Upgraded
the Apache Configuration Wizard to work with the newest version
of the Apache Web Server v2.x
- QAID: 5406 - Ability
to customize the SQL statement used when adding a table to the
- QAID: 5330 - Multi-Table
view now automatically scrolls to show new column when grid is
already filled up
- QAID: 5433, 5483
- Numerous optimizations have been implemented throughout dQuery
to speed up access to table metadata
- QAID: 5387 – Improved
speed of Imports and Exports by optimizing transaction processing
in Import and Export Wizards
- New Report Format
dialog - allows you to customize an Automatic Report without having
to use the Report Designer.
- Improved handling
of table indexes when connecting via ODBC. An ODBC index dialog
now displays if a primary or unique index cannot be identified,
allowing the user to specify which index to use.
- dQuery has a new
and improved EasyStart help system
- The One-Click Windows
Application now has an included help file.
- The treeview Explorers
on the toolPanel now resize to fit as you increase the width of
- New View menu option:
Restore Default Tool Panels opens the Tool Panel at the default
location and centers the Design Surface and Data Area
- The dQuery Toolbar
now respects .ini settings saved when you exit dQuery.
- The Database Explorer
tree now has a new fly-out dialog to handle databases with long
table lists (more than 200 tables)
- New DataModule Wizard
that can be launched from the new EasyStart dialog and allows
open, new and open recent.
- dQuery now has a
much more stable and flexible naming system so that tables of
all types display the most appropriate part of their name as the
name of the Query
- Improved readability
of Wizard button icons.
- Single Table View,
Multi Table View, and Report View buttons have been modified to
look like Win XP buttons
- Updated dQuery's
expression builder to automatically adjust the maximum number
of characters that can be entered into the Value combobox to match
the size of the field selected in the Field combobox.
- Updated dQuery's
Filter Wizard to automatically adjust the maximum number of characters
that can be entered into the entry fields for the Fast Indexed
- dQuery/Web now has
updated graphics and color scheme
- QAID: 5426 – Added
new configuration option to dQuery.ini called “askCreateIndex”.
If set to 0, removes the “Create New Index” option from the ODBC
index dialog. If set to 1, the “Create New Index” option will
be available (this is the default)
dBASE PLUS 2.6
- QAID: 5345 – Corrected
painting of Line and Shape components when using XP Visual Styles.
- QAID: 5399 – Corrected
display of focus indicator for Tabs, Checkboxes, Radiobuttons
and Sliders when using XP Visual Styles.
- QAID: 5162 – Improved
ability to pass correct 32 bit values to external functions. Fixed
the bitwise functions (i.e. bitnot(), bitand(), etc.) to return
an integer value instead of a floating point for all values within
the range of a 32 bit signed integer: +2,147,483,647 to -2,147,483,648.
The bitwise functions corresponding to an unsigned 32 bit integer
value greater than > +2,147,483,647 will still return a floating
point double type value.
- QAID: 5117 - Fixed
"Memory Access Violation" that occurred when calling the INT()
function and passing in a very large number.
- QAID: 5405 - Improved
ability to pass correct 32 bit values to external functions. Fixed
the INT() function to return an integer type for the full range
of long integer values instead of limiting the integer type return
values to x in the range of -100,000,000 < x < 100,000,000. If
x is outside the valid long integer range, the value returned
is a floating point double type. The range of a 32 bit long integer
is as follows: +2,147,483,647 = 0x7FFFFFFF thru -2,147,483,648
- QAID: 5315 - A dialog
to save the project file after a build or rebuild has been performed
now only appears when the exe was automatically added to the Inno
| Files list.
- QAID: 5111 – Fixed
compile time errors that occurred due to opening project from
a different folder than it was stored in.
- QAID: 5112 – Fixed
Program Alert that occurred when attempting to save to read-only
- QAID: 5120 – Fixed
Main program not found error due to use of a source alias
- QAID: 5142 – Fixed
problem that caused Main Program File combobox to sometimes become
- QAID: 5285 – Updated
documentation about the Project Explorer's Inno features
- QAID: 5390 - Updated
the Project Explorer to display correctly when using the Windows
- QAID: 5269 - Relative
paths are now preserved when a file is automatically added to
the Inno | Files list.
- QAID: 5316 - If a
project file cannot be saved, a more explicit error message is
used. Read-only project files are no longer overwritten. If a
project is attempting to close and the save is unsuccessful, the
form will not close.
- QAID: 5320 - The
Project Explorer no longer causes a Program Alert if a Compile
All is performed when one or more forms cannot be compiled.
- QAID: 5375 - Fixed
slow dBASE PLUS combobox behaviour when Microsoft Anti-spyware
beta is running
- QAID: 5099 - Fixed
memory leak in ListBox that occurred when calling the selected()
method. The ListBox will no longer keep an internal reference
to the returned array, and the reference count of the returned
array is now 1. Previously the reference count was 3.
- QAID: 5367, 5385
- Fixed memory leaks in listbox selected() method. Calling listbox.selected
when listbox.multiple = false was creating an array but not returning
it or destroying it resulting in a memory leak. Fixed an additional
case for the listbox that occurred when the listbox.selected()
method was called with an index to determine if the indexed item
was currently selected. This option only worked for listbox.multiple
= true with the listbox.datasource set to an array. Otherwise,
the index parameter was ignored and a null string was returned
by the method. This can lead to unexpected results for the case
where the listbox.datasource is a field object.
- QAID: 5367, 5385
- Fixed memory leak in grid selected() method that results in
an instance of an array being left in memory for cases where the
array is not returned by the methods, which occurs when grid.multiSelect
- QAID: 5100 - Fixed
height of grid column's editorControl so that it does not paint
1 pixel too short allowing colorNormal or beforeCellPaint() colors
to show up as a 1 pixel thick horizontal line at bottom of cell
that has focus.
- QAID: 5140 - Fixed
bug in grid scroll that causes 1 pixel high line to appear between
rows when hasRowLines = false, gridLineWidth = 0, beforeCellPaint()
is used to paint all cells a non-default color, and user presses
up arrow or clicks on up button of vertical scroll bar.
- QAID: 4113 – Fixed
bug where if more than one grid is on a form, with each having
an onFormSize event set, event fired for only one grid.
- QAID: 5119 - Prevented
property changes that occurred in editorControl's onGotFocus()
or onLostFocus() from triggering infinite loop due to notifications
from font object back to grid or from property changes triggering
a full grid refresh.
- QAID: 5383 – Prevented
property changes in Grid and Grid editorControls from inappropriately
scrolling grid back to its leftmost column such as when modifying
properties in the Inspector.
and OnMouseOut() events
- QAID: 2946 – Fixed
onMouseOver and onMouseOut events so they will fire when both
MDI and showTaskBarButton (form properties) are false. Fixed problem
that prevented onMouseOver and onMouseOut events from firing under
- QAID: 5046 – Fixed
problem where the page range option of the ChoosePrinter dialog
did not work when attempting to print specific pages instead of
the entire report.
- QAID: 5040 - Fixed
the following printer problems: 1. In the Print Setup dialog,
if the paper source (tray), size or orientation were modified
with the dialog, that is invoked with the Options button, the
change had no effect. If they were modified with the parent dialog,
the change had an effect. 2. In the Print dialog, the Collate
checkbox was not always disabled when the chosen printer did not
support collation. Note: If the chosen printer is not warmed up
or not connected, the selected printer options may not be updated.
- QAID: 5118 - Fixed
ChoosePrinter() dialog so that it correctly handles the Collate
option as well as settings made via the printer driver's custom
setup dialog (accessed via the Options button in the ChoosePrinter()
- QAID: 5158 - GPF
when printing report after changing a setting under Print Dialog
- QAID: 5253 - Fixed
ReportViewer so that it correctly paints scrollbars when it is
made wider than the displayed report.
- QAID: 3464 - Fixed
problem in Form Designer where opening the Source Editor causes
the Inspector to switch to inspecting the FORM object instead
of the object that was previously selected.
- QAID: 5147, 3660
- Fixed a GPF that occurred in the form designer when deleting
a query object that had a field datalinked to a listbox component's
- QAID: 5067 – Improved
Form.print() to more reliably print the image of the form as seen
on screen instead of redrawing parts of the form out of proportion
and poorly positioned on the page.
- QAID: 5184 – Fixed
behaviour of form when Form.ScrollBar =2. Previously, when a control
was created dynamically outside the form rectangle, the scroll
bars were invisible when they should have displayed and become
- QAID: 5192 - Fixed
a problem where the mouse pointer didn't return to the correct
shape when moved onto a container from outside the form window
if that edge of the container extended beyond the edge of the
displayed form area.
- QAID: 5103 - Fixed
problem in menu.enabled property that prevented menu items for
a menu attached to the frameWin object from being enabled or disabled.
Sort Rows to
- QAID: 5097 – Fixed
“Database Engine Error: Number is out of range” error that could
occur when using the Sort Rows to Table menu option.
- QAID: 5149 - Fixed
GPF that could occur when choosing the File | Clear Custom Class
menu option while in the Report Designer. Also corrected the default
band height settings after clearing a custom report class.
- QAID: 8, 5214 - Fixed
problem in Report Designer where Undoing an operation on a group
of objects would only undo the operation on the first object in
- QAID: 5226 – Fixed
GPF that occurred when using Exit within a Try block
- QAID: 5276 – Improved
trapping of Memory Access Violation errors that occur when executing
certain SQL statements. These errors are now reported as "Unknown
error executing SQL statement: " instead of as
a Memory Access Violation.
- QAID: 5145 - Fixed
problem in Table Designer that can cause "Invalid Index Descriptor"
- QAID: 5228 - Fixed
problem that caused the entryField or spinbox value property to
return zero instead of the correct value due to setting the value
programmatically to a value that had more digits than were allowed
for in the picture property.
- QAID: 4504 – Fixed
Spinbox.onChange() so that it only fires once for a single change.
Previously it would fire when clicking on a spinbox button and
again when the spinbox lost focus.
- QAID: 2268, 5164
– Fixed several problems that sometimes caused the debugger to
freeze on Windows XP.
dBASE PLUS Installer
- QAID: 5310 - Removed
the dBASE PLUS installer French install language option from the
installer language dialog at the start of the dBASE PLUS installation
as it was never fully supported.
- QAID: 5125 – When
encrypting a dBASE table that contains data, the data will no
longer become corrupted. When encrypting a dBASE Level 7 Table
containing Referential Integrity (RI) rules, the RI rules are
now copied into the encrypted table in most cases. When encrypting
a dBASE table, the source table is renamed. The table renaming
is now done in a way that allows the renamed table to be kept
intact with its indexes so that it can be opened in dQuery without
triggering a “Cannot Open MDX” error.
- QAID: 5063 – Updated
Multi-Table View so that it retains changes to column position
and column width when a new column is added
- QAID: 5412 – Fixed
“Missing SUPERCLASS” error that could occur when opening an existing
datamodule that required a login to a DBMS
- QAID: 5483 – Optimized
code in the SQL Select dialog to speed up retrieval of table metadata.
- QAID: 5429 – Fixed
use of upper() function in SQL Expression Builder so that it is
only used for dBASE and Paradox databases. When used with other
DBMS’, it triggered various syntax errors
- QAID: 5427 – Upgraded
Export Wizard so it correctly exports auto increment fields to
both local tables (dBASE and Paradox) and most types of DBMS tables
- QAID: 5407 & QAID:
5409 – Corrected use of uppercased table names so that they are
only used where they will not trigger DBMS errors when accessing
DBMS’ that are case sensitive.
- QAID: 5409 – Fixed
“Table ‘dbo’ not found” error in SQL Select dialog where dbo is
a table name prefix
- QAID: 4273 – Fixed
speed search for non-character field types in the the One-Click