<% '------------------------------------------------------------------------------- 'File : dBase_Cust_Ser_Tech_Support.asp 'Author : Surya Kumar 'Task : Cust_Ser_Tech_Support Page for dbase 'Version : 1.0.0.pk 10.12.2004 Base version 'Copyright : Ebase Interactive Inc., NY, USA '------------------------------------------------------------------------------- %> Welcome to dbase


dBASE Plus 2.61.2 (Build 2054)
Features and Fixes
February 8, 2007


New Features and Enhancements

ComboBox
Overview The ComboBox has been overhauled to fix many long standing bugs and to make it simpler and easier to enhance in the future.
QAID: 561 Added new ComboBox events, beforeDropDown and beforeCloseUp.
  • beforeDropDown() - Fires just before dropdown list opens for a style 1 or 2 ComboBox
  • beforeCloseUp() - Fires just before dropdown list is closed for a style 1 or 2 ComboBox
QAID: 6183 Added new ComboBox events: onChangeCommitted(), onChangeCancel(), beforeEditPaint(), and onEditPaint()
  • onChangeCommitted() - Fires when the user takes an action indicating that they are choosing a value for the ComboBox. onChangeCommitted will fire in the following cases:
    • Left click on an item in the listbox (all styles) when the item is different from the current ComboBox value.
    • Press Enter with an item highlighted in the dropdown list (style 1 or 2) when the item is different from the current ComboBox value.
    • For style 0 or for style 1 or 2, with dropdown list closed, press the Up Arrow, Down Arrow, PgUp, or PgDn keys.
    • Left click on the ComboBox button for a style 1 or 2 ComboBox when the dropdown list is open and the highlighted item in the dropdown list is different from the current ComboBox value.
    • onChangeCommitted() fires only after the ComboBox's value property has been updated with the selected value.
    • onChangeCommitted() will not fire for a style 1 or 2 ComboBox when the dropdown list is open and the Up Arrow, Down Arrow, PgUp, or PgDn keys are pressed.
  • onChangeCancel() - Fires if the user takes an action that closes the dropdown list without actually choosing an item. For example, clicking on the form surface or on another component or some other window entirely. onChangeCancel() can be used to implement logic to change the ComboBox value back to some other value, perhaps the value it had just before the dropdown opened.
  • beforeEditPaint() - In a style 0 or 1 ComboBox - fires for each keystroke that modifies the value of a ComboBox. beforeEditPaint() fires just before displaying the new value for a ComboBox. It does not fire if the keystroke does not modify the ComboBox.
  • onEditPaint() - In a style 0 or 1 ComboBox - fires for each keystroke that modifies the value of a ComboBox. onEditPaint() fires just after displaying the new value for a ComboBox. It does not fire if the keystroke does not modify the ComboBox.

Notebook
QAID: 2362 Upgraded the Notebook to paint the area to the right of its tabs to match the background of its parent container when the Notebook's borderStyle is set to 0 - Default or 3 - None.

Project Explorer
QAID: 4784 Added a new setting that allows for the Project logo on the left side of the Project Explorer window to be hidden based on the user's preference. In the process, a new drop down Properties menu was added to the Project Explorer's main menu bar. This menu allows you to access a new form to adjust the visibility of the logo. It also lets you access the Desktop properties, just like other components of dBASE Plus.



Fixes

ColumnComboBox
QAID: 6171 Fixed handling of navigation keys when a ColumnComboBox has its dropdown list open within a grid. Previously, pressing Up Arrow, Down Arrow, PgUp, or PgDn would cause the dropdown list to close. Now, pressing these keys allows the user to navigate within the dropdown list. When dropdown list is closed, these keys are used by the grid to navigate from cell to cell or page to page.
QAID: 6184 Fixed ColumnComboBox so that it correctly converts a non-default setting for dropDownHeight to the current form metric. Without this fix, a non-default dropDownHeight would be converted assuming it was specified in Chars even when the form's metric was set to another unit (such as pixels). This led to the actual dropDownHeight being set to an incorrect size (usually much larger than it should be).

ComboBox
Summary Major re-architecting of the ComboBox to fix many long standing problems. Here is a summary of the fixes. (The specific QAID's follow):
  • Middle and Right double click events now work for the ComboBox except as noted below.**
  • All mouse down, up, and dblclick events now fire on listbox part of ComboBox except as noted below. Previously, they did not fire at all on the listbox.
  • colorHighlight now works properly for a style 2 ComboBox.
  • dropDownHeight now works properly when XP Visual Styles are enabled.
  • onChange() event now fires whenever the ComboBox value is updated by user action from the list of available items (the items assigned via the dataSource property). The onChange() event will also fire when the ComboBox loses focus after the ComboBox value was changed by the user editing the value.***
  • autoDrop now works reliably for style 1 and style 2 ComboBoxes.
  • Dropdown list will no longer open, close and open when first clicking on the ComboBox.
  • Dropdown list will no longer bounce or flash when opening in various situations.
  • The default Windows XP context menu will no longer open when right clicking on a ComboBox.
  • When on a subform, ComboBox mouse and focus events will no longer fire multiple times in most situations.
  • With the ComboBox dropdown list open, clicking off of the dropdown will now close the dropdown list and forward the mouse event to whatever was clicked on.
  • When typing into a ComboBox, Window's WM_KEYDOWN and WM_CHAR messages that are not handled by the ComboBox are now passed on to other message hooks (if any). This makes ComboBox controls more compatible with Windows Accessibility tools and with other software that uses message hook routines.
  • Scrollbar controls no longer interfere with ComboBox message processing. Previously, messages checked by the scrollbar control were not always passed on to the ComboBox and other handlers that might need them.
  • When dropdown list is open, using the dropdown list scrollbar or pressing PgUp, and PgDn can be used to navigate the list. Previously, the dropdown would close when attempting to use these navigation options.
** Note that for a style 2 ComboBox, onLeftDblClick() does not fire due to the left mouse down event being used to trigger opening or closing of the dropdown list or choosing an item from the dropdown list.

*** Note that onChange() will not fire due to a programmatic change to the value property. If you need onChange() to fire in this situation you can call the onChange event handler directly.

QAID: 190 For a ComboBox with Style=2, typing a character from the keyboard, when the list is down, caused the list to close. With the list closed, pressing the up or down arrow keys caused the list to briefly be displayed and then quickly closed.
QAID: 336 Fixed ComboBox so that it releases mouse capture and input focus when the drop down list is open and the user presses the left mouse button off of the drop down list, such as on the form surface or on another component, window or form. In addition, the left mouse down event is now forwarded to the window that was clicked on.
QAID: 338 Fixed ComboBox so that the onChange() event fires after using the up/down arrow to change the selection. Also fixed setting of modified flag so that it is set to True when using the up/down arrow keys.
QAID: 2099 Fixed a problem where for a ComboBox style 1 or style 2 with autoDrop=true, the list would drop down and then close, instead of staying open. Also fixed several issues listed for ComboBox.style=2 as follows:
  • Fixed an extra open and close of the list after selecting an item.
  • Fixed re-display of the list that occurred when using an up or down arrow key to navigate the list.
  • Tabbing to the ComboBox now consistently opens the list.
QAID: 2341 Fixed ComboBox so that onLeftMouseDown and onLeftMouseUp events now fire consistently.
QAID: 3496 Fixed crash that occurred when setting ComboBox datasource to an array containing strings with more than 256 characters.
QAID: 4659 Fixed firing of ComboBox double click events.
QAID: 4243 Fixed ComboBox so an inappropriate and unsupported Windows XP context menu no longer displays when a user right clicks on a ComboBox.
QAID: 4802 Fixed a problem for a ComboBox using style=0 (Simple), where the onLostFocus event fired incorrectly when the ComboBox got focus in addition to the correct firing when focus is lost.
QAID: 6183 Modified event onChange() so it fires for every change to the ComboBox value. When the user edits a ComboBox value (style 0 or 1), onChange() will fire when focus leaves the ComboBox. The onChange() event will not fire when ComboBox.value is changed programmatically.
QAID: 6172 Fixed a problem where onKey() fired twice for a ComboBox with style 2.
QAID: 6174 Fixed a problem where for a ComboBox with style 0 or style 1, the onKey event did not fire when tabbing off of the ComboBox.
QAID: 6145 Fixed more cases where the ComboBox onChange event fired when it should not fire:
  • Fired after losing focus when the current item is chosen twice.
    • Open the ComboBox dropdown list
    • Select the same item as currently selected
    • Tab to exit the ComboBox
    • The onChange event should not fire for this case
  • Fired when the current item is chosen twice. This problem only occurred the first time the ComboBox was selected.
    • Open the ComboBox dropdown list
    • Click the mouse to select the same item as currently selected
    • The onChange event should not fire for this case
  • Fired twice when the F4 key and Up/Down arrows were used for selection.
    • Move focus to a ComboBox
    • Press the F4 function key to open the ComboBox dropdown list
    • Use the Up/Down arrow keys to change the selected item
    • Press the Enter key
    • The onChange event should fire only once for this case
QAID: 6150 Prevented firing of an extraneous onLeftMouseUp event when a ComboBox loses focus. This event was firing even when focus was changed by pressing the tab key.
QAID: 6177 Fixed behavior of ComboBox.dropDownHeight when using XP Style ComboBox, such as when running dBASE with a manifest file that specifies use of the version 6 comctl32.dll.
QAID: 6166 Fixed double firing of ComboBox onGotFocus event when opening a form or a subform where a style 0 or 1 ComboBox is the first control to receive focus. Partially fixed triple firing of ComboBox onGotFocus event when opening a subform where a style 0 or 1 ComboBox is the first control to receive focus. Reduced the firings of onGotFocus from 3 times to 2 times. Fixed extraneous firing of same ComboBox's onGotFocus when clicking on surface of subform.
QAID: 6169 Fixed use of colorHighlight for style 2 ComboBox so that the main part of the ComboBox is painted using the colorHighlight colors when the ComboBox has focus and painted in colorNormal colors when the ComboBox loses focus.
QAID: 6167 Fixed firing of extraneous onGotFocus() event for a Style 0 or 1 ComboBox when the ComboBox has focus and the user clicks on the form surface.
QAID: 6168 Fixed firing of ComboBox.onGotFocus when resizing a form when ComboBox is style 0 or 1.

dQuery
QAID: 5692 Improved how dQuery manages the _app.detailNavigationOverride setting. dQuery will now save its setting during dQuery startup and restore the saved setting when dQuery closes and when dQuery loses focus.
QAID: 6098 Fixed an error in the Print Wizard caused by a misspelled variable.
QAID: 6154 Fixed an error within a catch statement in the Export Wizard caused by a typo in a classname.

Editor
QAID: 6132 Fixed a problem in the Editor class that prevented firing of the following events: onMiddleDown(), onMiddleUp(), OnMiddleDblClick().

Error Dialog
QAID: 6108 Fixed a regression in dBASE runtime that could cause an infinite loop when an error occurred and the user pressed the Cancel button in an error dialog.

Form Components
QAID: 5474 Fixed repainting of controls in a container on a notebook after a modal form has overlayed them and then closed.
QAID: 6137 Fixed a regression that prevented firing of onMouseUp events after firing an onDblClick() event. With this change, double clicking a mouse button will now generate the following sequence of events: onMouseDown, onMouseUp, onMouseDblClick, onMouseUp. This sequence matches the native Windows double-click sequence. Before this change, the last onMouseUp event was not firing.

Form and Form Designer
QAID: 3397 Fixed a regression that was preventing a form's onLeftDblClick, onRightDblClick, and onMiddleDblClick events from firing. Before this fix: onLeftDblClick would not fire unless an onLeftMouseUp event was defined. onRightDblClick would not fire unless an onRightMouseUp event was defined. onMiddleDblClick would not fire unless an onMiddleMouseUp event was defined.
QAID: 6078 Fixed an Internal Error that occurred when opening a form containing three datamodules into the Form Designer and then clicking on the Form's Close button.
QAID: 6085 Fixed GPF that occurred when closing a form with a grid containing a ColumnSpinBox and an onLostFocus event. When a cell in the column containing the ColumnSpinBox control had focus, closing the form caused the following error, which was followed by a GPF: Error: editorControl_onLostFocus does not exist. This is a regression caused by the changes for QAID:0593 in build 1884.
QAID: 6136 Fixed a regression in nextObj that could cause a lockup in the Form Designer.

Grid
QAID: 6080 Fixed updating of the vertical scrollbar in a grid when the grid is datalinked to a child rowset and the parent rowset is positioned to a different row.
QAID: 6100 Found and fixed a problem where an internal pointer could sometimes become invalid while painting the grid during processing of a down arrow event. This prevents possible memory access violations.
QAID: 6159 Fixed a problem that caused a grid's window to disappear when the grid's rowset was closed during a requery() of the rowset's parent query object.
QAID: 6136 Fixed a Memory Access Violation that occurred when attempting to iterate through a rowset that is datalinked to a grid on a form that has not yet been opened.

Notebook
QAID: 722 Fixed updating of a transparent control's background when its position (left or top) is changed and the control is on a form with a bitmap background, or on an XP Style Notebook.
QAID: 5605 Fixed a problem that caused text on a Rectangle on a Notebook to become truncated when the Notebook's fontbold property was set to true.
QAID: 6007 On an XP Style Notebook that has arrow buttons (in the upper right corner) to scroll through the tabs, fixed the problem that caused controls positioned below the arrow buttons to be clipped.
QAID: 6013 Fixed a problem that caused the background color of a Radiobutton on an XP Style Notebook to be overridden by the Notebook's background color.

Rectangle
QAID: 6087 Fixed a flicker that occurred for the text of an XP Style Rectangle when the mouse moved over it.

ScrollBar
QAID: 6147 Fixed a problem where a vertical or horizontal scrollbar on a form could interfere with the mouse events for ComboBox components on the same form.

Project Explorer
Summary Updated Project Explorer to build pe1028, which includes the new ability to hide the Project Explorer logo graphic at the left of the form, as well as support for Inno Script Generator, which replaces ScriptMaker as the supporting tool for creating Inno installers. More details are included below.

Details Changed Project Explorer to support Inno Script Generator instead of ScriptMaker.

Added a new menu item, Build->Compile script and execute, to directly compile the Inno script and run the compiled setup.exe.

Fixed a Run menu text error for non-English dBASE languages.

Fixed a problem that occurred when creating a new project, where an error dialog displayed if the Windows X button is used to close the project after only entering a project name.

Changed Inno [Code] lines output to support Runtime Uninstall call, and to add a function call for the dBASE Runtime Engine.

Added support for new Inno languages, Danish and Polish.

Added new fields (ComboBox and entryfield (ComboBox-Result) on the bottom of the Inno Default Tab at bottom ) to include Inno [Languages] section entries only for languages chosen by the user and not always all (Default _app.Language). Also added text and Speedtips to the DTF (language translation) files for these new fields.