Home Solutions Support Contact Us About Us
Product Information
dBASE Plus
dBASE Personal
News!
Request Additional Information
Online Store
Join the dClub Mailing list
Programs
Student Program
Mentor Program
VAR Program
Knowledgebase
Newsgroups & Forums
International Distributors
dBASE Gold Site

dBASE PLUS b1804 - Features and Fixes - since version 2.21 (b1755)
As of 11/22/2004 (page updated 08/01/2005)

New Features and Enhancements in dBASE PLUS 2.50
======================================================================================

New and enhanced mouse events

  • QAID: 2175 - New events - onMouseOver() and onMouseOut() for all form components, Form and Subform. Both events receive the following parameters: flags, col, row onMouseOver() fires when the mouse enters a control, form, or subform onMouseOut() fires when the mouse leaves a control, form, or subform
  • QAID: 3423 - The col and row values passed to all mouse events have been changed to use standard signed mouse coordinates instead of unsigned values. dBL Code to adjust unsigned values to signed values is no longer needed.

Grid Class

  • QAID: 108 - New grid column control events: beforeCellPaint() and onCellPaint() These events allow a grid cell's color, font, and other attributes to be modified on a cell by cell basis. The value to be displayed is accessible within these events and can be used to modify the cell conditionally. These events are surfaced for each of the grid columnEditor controls:
    • columnEntryField
    • columnSpinBox
    • columnComboBox
    • columnCheckBox
    • columnEditor
    • columnHeadingControl
  • QAID: 4890 - New property - grid.colorRowHeader to set the color of the row header. The foreground color specifies the color of the indicator arrow or plus sign. The background color specifies the row header background color. The default setting is: WindowText/BtnFace
  • QAID: 115 - When designing a form in the form designer a grid component's scroll bars will now be enabled. This will allow the developer to scroll the grid horizontally in order to bring the column they are working on into view. Once in view, if columns have been defined, they can click on the column to select it into the Inspector and directly modify the columns properties, methods, and events.

dQuery

  • Graphics, buttons and background have been changed in dQuery 2.5 to create a new, more modern and accessible GUI.
  • dQuery now offers two graphic interfaces: the expert Developer version based on the Inspector; and a new "business-user" interface based on easy-to-use dialogs.
  • dQuery no longer destroys Parent/Child relations during certain operations, such as filtering or setting indexes, unless it has to, due to the changes made.
  • dQuery now supports importing and exporting to tables that have Autoincrement fields.
  • dQuery now allows you to create indexes and perform other table-level operations, even if a report is currently using the table.
  • dQuery 2.5 has a number of new and revamped dialogs called from context-sensitive right-click menus when in the "Business-User Mode"
  • Date searches have been improved, especially for non-dBASE tables.
  • The Excel export has been rewritten and improved.
  • Many outputs, such as tab- and comma- delimited text now allow you to use field names as the first row in the output file.
  • dQuery 2.5 offers a new format for exporting data as text: Simple Columnar Report
  • The Print Wizard has been upgraded to include a "Preview" button that allows you to preview onscreen before printing.
  • The dQuery 2.5 Print Wizard now supplies much more information when you print the "Object Tree" of the dataModule, including indexes, parent-child relations, filters and the dataModule's Multi-Table View.
  • You can now edit an existing SQL file from within dQuery.
  • All dQuery 2.5 reports now use the standard Windows Print dialog before printing.
  • Support for SQL Server tables has been improved.
  • More than 100 bugs have been fixed.

Array Class

  • QAID: 4767 - Array.dir() and array.dirext() can now return a file count greater than 32K

Treeview

  • QAID: 3987 - Modified Treeview so that expanding or collapsing a tree node (clicking on + or -) does not change the currently selected item (unless the currently selected item is among those being collapsed).
  • QAID: 4962 - treeview.canExpand and treeview.onExpand events now receive a parameter, oItem, providing an object reference for the treeitem whose + or - has been clicked. Expanding or collapsing a treeitem by clicking on its + or - no longer selects the item that is expanded or collapsed. THIS MAY REQUIRE CHANGES TO EXISTING CODE.
  • QAID: 4803 - Treeview control can now display images using more than 16 colors. Images using anywhere from 4 bit color up to 32 bit color are now supported.

Report

  • QAID: 4907 - The default value of the report autoSort property has been changed to 'false'. Previously, it was 'true'. THIS MAY REQUIRE CHANGES TO EXISTING REPORTS

BDE Usage

  • QAID: 4133 - Implemented fix to prevent inappropriate "Insufficient Disk Space" errors from occurring due to the BDE using truncated disk free space data. This fix is similar to one provided by a 3rd party on the Borland Web Site, but is integrated into dBASE PLUS and does not require an external DLL file.

Project Explorer

  • QAID: 5064 - dBASE PLUS Project Explorer now supports creating deployers for dBASE applications using Inno Setup and ScriptMaker. An "Inno" tab is now surfaced in the Project Explorer for non-web projects that can be used to create Inno Setup installers using ScriptMaker.

    Basic Instructions:

    Install Inno Setup
    Install ScriptMaker

    To use it…

    1. Setup a project as usual.
    2. Fill out forms on Inno tab.
    3. Generate the script on the Script tab (lightning bolt icon).
    4. Open ScriptMaker (icon next to the generate script one).
    5. In ScriptMaker, click the Inno button under Compiler.

    This will generate the installer in the source directory\Output\setup.exe.

Inspector

  • QAID: 5052 - Inspector defaults changed to increase size and expand categories

_app Object

  • QAID: 4984 - New methods of _app.frameWin object: hasHScrollBar() and hasVScrollBar().
    • hasHScrollBar() returns True if the frame window has a horizontal scrollbar.
    • hasVScrollBar() returns True if the frame window had a vertical scrollbar.

    These methods allow a form to more accurately determine how much room is available within the frame window.

  • QAID: 4863 - New method - _app.ExecuteMessages() Allows you to periodically process pending messages while running a lengthy processing routine, thus allowing a dBASE PLUS program to respond to events instead of appearing to be locked up.

Procedure files

  • QAID: 4765 - SET PROCEDURE TO <procedurefile> has been changed to assume ADDITIVE was specified.

Report Designer

  • QAID: 4963 - The detailBand, headerBand, and footerBand are now visible in the Report Designer when they are empty (if their height is not zero).

    The margins are now painted to correctly show the page edge.

    In the left outline view the rectangle that used to be labeled as pageTemplate1 is now correctly labeled as: Available Page (report.pageTemplate1 margins)

    The stream frame is no longer allowed to be resized larger than the margins of the pageTemplate.

    A page-template margins rubber band is now available when clicking on the page-template area to allow setting the margins by resizing the rubber band rectangle.

    Re-sizing the pageTemplate margins with the mouse now correctly sets the pageTemplate's margin properties rather than its height and width properties.

Error Handling

  • Error handling in the dBASE PLUS byte code interpreter has been enhanced to catch Memory Access Violation errors and provide file name, procedure, and line number information. Previously, these kinds of exceptions were triggering critical errors, which displayed a message that dBASE or Windows had encountered an internal error. The additional information is helpful when diagnosing the source of the error.

CHOOSEPRINTER() Function and choosePrinter() method

  • QAID: 5046 - The CHOOSEPRINTER() function and method have been enhanced to accept a second parameter which allows you to choose between displaying the Print Setup dialog and the standard Windows Print dialog.

    The choosePrinter() method of the printer object will now default to default to displaying the standard Windows Print dialog instead of the "Print Setup" dialog when the printer object is attached to a report object. In addition, choosePrinter() will now carry any start and end page settings in the report object into the Print dialog and any start and end page settings made in the dialog will be carried back into the report object.


Fixes in dBASE PLUS 2.50 since 2.21
======================================================================================

Grid

  • QAID: 5030 - Fixed GPF's triggered by interaction of Grid with Rowsets.
    • Prevented GPF due to a query attempting to release a rowset twice when the rowset had a field displaying in a grid.
    • Prevented GPF in grid due to accessing invalid rowset and bookmark pointers
  • QAID: 4854 - Fixed problem in grid where after switching the position of two columns, clicking on the row headers in the grid causes the current grid cell to alternate between the moved columns.

Error Handling

  • QAID: 4820 - Fixed GPF that could occur when starting dBASE PLUS due to some printer drivers that do not correctly handle the case when they are controlling the default Windows printer but the printer is not connected.
  • QAID: 4906 - dBASE PLUS now checks if its configuration file (e.g. Plus.ini) can be written to before attempting to write to it. This prevents errors from occurring when running a dBASE application from a CD-ROM or when setting the file ReadOnly on a hard drive.
  • QAID: 5033 - Fixed core product indexed search routines so that they will correctly detect and report a data type mismatch when the index key type is DATE and the search value is CHARACTER or NUMERIC.

    The following properties, methods, commands, and functions are affected:

    • rowset.findKey()
    • rowset.SetRange()
    • rowset.masterRowset/rowset.masterFields
    • FIND
    • SEEK
    • SET KEY
    • KEYMATCH()
    • SET RELATION

    Secondary effects may be seen in Grid and Browse objects when _app.detailNavigationOverride = 1 and in reports displaying data from

Report

  • QAID: 4819 - Fixed regression in printing in dBASE PLUS 2.21 where the wrong data would print if starting a report on a page other than 1.

Report Designer

  • QAID: 5032 - Removed ReportViewer component from the Report Designer's Component Palette.
  • QAID: 5000 - Fixed bug in Report Designer when quickly clicking the mouse on a component, the would continue to move with the mouse after releasing the mouse button.
  • QAID: 4892 - Fixed GDI resource leak after editing a report in the report designer
  • QAID: 4900 - After editing report in the report designer, dBASE will now run the new version of the report, instead of continuing to run the old version.

Treeview

  • QAID: 4994 - Fixed problem in treeview when clicking on treeitem text or image that caused mouse up event not to fire and delayed mouse down event firing. If the mouse was double-clicked, two mouse up events were fired for each mouse down event.

Subform

  • QAID: 4998 - Fixed bug in subform's SetFocus() code so that calling setFocus() will always fire the subform's onGotFocus() event. Previously, if a subform already had focus, it would not fire its onGotFocus() event even when its setFocus() method was called.
  • QAID: 5005 - Fixed bug in subform message handling that prevented the Edit menu's Cut, Copy, and Paste options from working when focus was on a control on a subform.
  • QAID: 4960 - Fixed GPF and/or memory access violations that could occur when releasing subforms. In certain situations the parent form was being released before its subforms.
  • QAID: 4834 - Fixed subform so that when it gets focus it now ensures that the dBASE Frame window also is activated (i.e. titlebar displays in active colors).
  • QAID: 2125 - Fixed a problem where a subform can sometimes cause the menu associated with its parent form to contain incorrectly disabled menu items.

ActiveX

  • QAID: 5001 - Fixed certain instances of the ActiveX "Control is not Licensed" error. This fixes errors that occurred when placing an instance of the csXImage ActiveX control on a Form in the Form Designer. The fix may work with other controls that use a simple design time license file and do not have a runtime license.

Table Designer

  • QAID: 5007 - Fixed GPF that occured when closing Table Designer after widening numeric field in a level 7 dBASE Table. This crash would occur if user widened a numeric field and then saved. During the save process, if a record contained a value of all spaces in the modified field, a GPF would occur.
  • QAID: 4523 - Fixed problem in Table Designer and Inspector which allowed the highlighted field or control to appear twice if a a vertical scrollbar exists and you click on the scroll bar below the scrollbar slider.

Query

  • QAID: 4992 - Fixed GPF and/or memory access violations that could occur when releasing a query object. In certain situations, field objects belonging to the query's rowset were left with invalid pointers to an internal data driver object that was released prematurely.

Form

  • QAID: 4974 - Fixed form.persistent so that it does not increment the procedure file reference count if file has already been loaded via a SET PROCEDURE call. If file is already loaded, setting form.persistent to true will ensure that the procedure file is marked as persistent. If the procedure file is not found to be already loaded, and the form is open, then setting form.persistent to true will perform an implicit set procedure to <filename> persistent.
  • QAID: 4983 - Fixed problem in form readModal() that sometimes caused a form or subform to remain disabled after readModal() returns. This could happen if other forms or subforms are created or destroyed during the readModal().

Array

  • QAID: 1219 - Fixed GPF that occurs when issuing array.dirext() with a large number of files in the directory.

Navigator

  • QAID: 4808 - Fixed GPF that was occurring in Navigator when user presses letter keys and no files listed start with the letter that was pressed.

ComboBox

  • QAID: 3912 - Fixed the problem with a ComboBox value not being saved when the Delete or Backspace key clears the window text resulting in a string of zero length.

Code Streaming

  • QAID: 4880 - Fixed comment and formatting problems that can occur when streaming code from within the Form Designer or Report Designer.

    Comment lines entered in a multi-line /*...*/ comment block using the Source Editor were showing as blank after opening the form in the Form Designer or after attempting to save from the Source Editor when open in the Form Designer.

    In addition, comments beginning with && or note were also changed to blank lines under the above conditions.

Radio Buttons

  • QAID: 4750 - Fixed problem with RadioButtons so that they work as a group even if components from another page on a form are intermingled in the source file with the members of the radiobutton group. However, using the up and down arrow keys to move between radiobuttons in a group does not work if the members of the group are not contiguous in the source file.

    Also fixed RadioButtons so that named groups now work properly. Named groups can be created by setting each radiobutton's group property to the same text string.


  dataBI  

©2004 dataBased Intelligence, Inc., dQuery and dBASE are trademarks of dataBased Intelligence, Inc. /  All rights reserved.

All other copyrights and trademarks are the property of their respective copyright or trademark holder.

Home       Terms of use       Privacy Policy       Contact Us