You are on page 1of 9

================================================================================ === VSFlexGrid Pro Build 7.0.0.

78 ================================================================================ === ================================================== DOCUMENTATION CHANGES (CUMULATIVE) 21 Sep 2000 ================================================== Added OLESetCustomDataObject event to allow custom DataObject instead of built-in. OLESetCustomDataObject fires after OLEStartDrag. This is mostly useful for VC++ programmers who want to implement their own IDataObject. To use the new event, use code such as (from ATLDDROP sample): void HandleCustomObject(VARIANT* vDataObject) { // get custom object's IUnknown interface (this does an AddRef()) // (m_MyDataObject implements IDataObject) IUnknown* pUnk; m_MyDataObject.QueryInterface(IID_IUnknown, (void**)&pUnk); // assign interface to variant V_VT(vDataObject) = VT_UNKNOWN; V_UNKNOWN(vDataObject) = pUnk; } Modify the BeforeEdit and StartEdit events to show the editing event sequence be low: KeyDown 65 ' user pressed the 'a' key (65 = 'A') KeyPress 97 ' *** new BeforeEdit 1 1 ' allows you to cancel the editing StartEdit 1 1 ' not canceled, edit is about to start KeyPressEdit 97 ' 'a' key passed to editor (97 = 'a') KeyUpEdit 65 ' user released the 'A' key KeyDownEdit 13 ' user pressed Enter KeyPressEdit 13 ' *** new ValidateEdit ' allows you to validate the edit AfterEdit ' editing done BeforeEdit ' repainting cell KeyUp 13 ' user released Enter key Add the following to the OLEDragMode property: In OleDragAutomatic mode, we allow only copying. To allow move/copy, trap OLEStartDrag and set AllowedEffects as in: // // Private Sub flxTemp_OLEStartDrag(Data As VSFlex7LCtl.VSDataObject, AllowedEffects As Long) // AllowedEffects = vbDropEffectMove + vbDropEffectCopy // End Sub // Add the following to the OLEDragOver Event: The grid will scroll automatically while OLE dropping. The scrolling happens when you hold the drop cursor near the edges of the grid for a short time. Scrolling is provided automatically when OLEDropMode is set to flexOLEDropAutomatic (2),

and not when OLEDropMode is set to flexOLEDropManual (1). You can enable scrolling in manual mode (or prevent it in automatic mode) by changing the Effect parameter in the OLEDragOver event. For example: Private Sub VSFlexGrid1_OLEDragOver(Data, Effect, Button, Shift, X, Y, State ) If g_bEnableOLEDropScrolling Then Effect = Effect Or vbDropEffectScroll Else Effect = Effect And (Not vbDropEffectScroll) End If End Sub The following items are not reflected in the printed documentation. Please see the Help file for details on these items. There is a new GetNode method that returns a VSFlexNode object. The VSFlexNode object corresponds to an outline row and has methods for adding, removing, locating, moving, sorting, and changing outline nodes. The Cell property has a new flexcpSort setting that allows you to sort a range without changing the selection. The new BookMark(Row) property returns a row's bookmark when the grid is bound to an ADO data source. Translated combos now use strings instead of numbers for keys. The ComboData property is now a string (used to be a long). The Appearance property has a new setting: flex3DLight creates a thin 3-D border around the control. CellBorder now supports double lines: use width values >= 100 to get double lines. Node.Move flexNMChildOf, nd makes a node a child of another node MousePointer has a few new cursor options (OLEMove, OLECopy, Hand) Tri-State check boxes (grayed) are now supported (CellChecked has new settings) The flexcpCustomFormat setting of the Cell property has a new capability: set it to a string containing a cell reference (e.g. "200 5") to copy the given cell's format (everything: font, color, alignment, picture, borders, etc). New ColIndent property allows you to specify an indentation for each column (in twips). ================================================== CORRECTED PROBLEMS 21 Sep 2000 ==================================================

Can't remove checkboxes from fixed cells in boolean columns Can't align checkboxes in fixed cells in boolean columns Optimized single-column date sorting (much faster now!) Fixed bad test in EditMaskFirstPosition Needed to fire events when changing selection with explorer bar Apply vsStringToData fix to DAO version as well as ADO This prevented entering strings with leading zeros into a DAO db. Honor EditMask = ";q" to suppress beep when editing with no mask DataObject returns pointer to foreign object using COM_INTERFACE_ENTRY_FUNC (COM_INTERFACE_ENTRY_AGGREGATE returns null instead of following the chain) Fixed resource leak when getting grid picture (Picture property). Use message posting in ADO add/delete to prevent eternal loops Sort bookmarks too, when ADO unbound Fire BeforeSort when bound (allow user to sort recordset, no glyph) Added OLESetCustomDataObject event Allow to set subtotals when bound to array/custom data source Invalidate editor when changing cell properties Fixed problem with custom drag format retrieval Fixed problem in node sorting Honor RightToLeft when rendering pics with outline tree Faster sorting extended to bools Trap changes to filtered ADO fields and refresh binding Failed to interpret value of "($4)" or "( 4 )" as -4 ListBox/MergeCells was causing crash Clicking just off the edge of a selection caused spurious drag/drop operation Fire Before/AfterSelChange with Before/AfterRowColChange (for consistency) Handle WM_CTLCOLORSTATIC to paint read-only text boxes properly Node.Sort with flexSortUseColSort didn't work well. The problem was the Node sorting was always done on the column that contained the outline column, which caused the grid to ignore the ColSort property on multiple columns. Now the Node.Sort method scans all columns when the flexSortUseColSort setting is used.

Note that Node sorting only affects the immediate children, not the grandchildren and deeper levels. To sort all children, grandchildren, etc, use code such as: Sub SortAllNodes(nd As VSFlexNode, how As SortSettings) ' ** sort the main node nd.Sort how ' ** and sort all children Dim i%, iCnt% iCnt = nd.Children If iCnt = 0 Then Exit Sub Set nd = nd.GetNode(flexNTFirstChild) For i = 1 To iCnt nd.Sort how If i < iCnt Then Set nd = nd.GetNode(flexNTNextSibling) End If Next End Sub Right-double clicks were not firing Setting ColComboList from BeforeEdit caused BeforeEdit to fire again Optimized node sorting (much faster when there's few children) Grayed tri-state checkbox displayed only with light version Setting EditMask to ";q" for quiet caused EditMaxLength to be ignored. Memory leak when connecting to DAO database Manual Drag/Drop not clearing data object properly When KeyPreview=True, ChangeEdit does not fire when selecting from a ComboList ================================================== End of entries for build 7.0.0.78 21 Sep 2000 ================================================== ================================================================================ === VSFlexGrid Pro Build 7.0.0.67 ================================================================================ === ================================================== CORRECTED PROBLEMS 20 Jul 2000 ================================================== Years before 1900 formatted as yy didn't display correctly Could set OutlineCol to bad value sometimes KeyDownEdit firing on EditCell for combos with custom entries Crash with MergeCells=flexMergeRestrictAll all rows/columns merged.

FlexOutlineSubtotals assumed there were hidden rows, showed + symbol Clear data object on OleDragLeave No dialog when ShowMsgBox set to True in the Error event. Firing BeforeDataRefresh and AfterDataRefresh when clearing the DataSource Safer code for binding to > 64k array cells. Made mouse handling synchronous (receives messages while processing) Editing w/EditMask, then dbl-clicking a different control kept placeholders Typing invalid character makes listbox select first item Partial matches in combos overriding previous contents Added sanity check on illegal default column on ComboList Cleaned up combo search behavior. ShowMsgBox did not work in the Error event ComboList/ColComboList throw error when assigned invalid lists Honor Cancel param in BeforeDataRefresh also when bound Preserve FrozenCols with data refresh Improved picture rendering/clipping AutoSize row heights didn't work well with cell pictures Made AutoSearch work on empty cells. Improved cell merging with check boxes Frozen col marker was bad with RightToLeft = True Keep initial custom strings in drop-down combos Improved combo search (cycling) Improved interpreting ColImagelist index (use doubles) Update selection before changing check box when ADO-bound. Improved mask truncation when content longer than mask Prevent resize/freeze when all rows/cols hidden Reset scroll range after clearing subtotals Clear method must reset merging state Checkboxes and node symbols were overlapping AfterMoveRow event was not fireing when dragging to same position.

Various paint optimizations Ignore col data type when aligning translated columns Honor Case/FullMatch in FindRow when looking for Variants Clear subtotals on DataRefresh FormatString not honored properly when data bound (blank headers) When HighLight is set to never, setting cell properties failed to invalidate pro perly TopRow/LeftCol not honored with no scrollbars When set illegal settings to multi-column combo, the result is different. The CellChanged is fired unnecessarily (when setting empty strings). IE shuts down when run when LoadArray without dimensioning array. Vertical scrollbar should not display (with lots of frozen rows) VB will report error when set Cancel=true in StartPage. Extra safety in ADO data-binding, check error code in AddItem Hidden Columns don't spill Fixed memory leak in grdGetClip Optimized buffered painting Drag & drop run incorrectly when message box in OLEDragDrop event. Highlight matches in AutoSearch with wrapping and center/right align didn't work well CellBorder overflows to adjacent cells when width > 128 (negative) The NewCol parameter in AfterSelChange event (should be NewColSel) Problem rendering BackColor on paper Cell border doesn't refresh correctly with underlined raised text RowStatus is not reset to flexRSNew after Clear method Wordwrap does not work with long string (with no spaces in it). <Ctrl+C> can not copy in-cell text (in IE). VB shuts down after set EditMask and ColComboList (Win2000 only). Wrong cursor position when EditMask starts with literals ("\[99\]"). The print is short of two rows of the control. Half of combo box button stays in fixed area (when cell is very narrow).

The <PageUp> does not take function in the frozen area. AfterUserFreeze event should fire only after the user freezes with mouse Subtotal merging with Frozen columns was broken Clear item of subtotal method makes wrong node symbol. Increase fixed row will make text overlap node symbol. Fire KeyDown with enter when AutoSearching No header/footer when doc name is null Added clipping to paper rendering (needed for multi-line strings) Collapsing a hidden node made it visible Allow to change fixed columns when bound to custom data source There will be a gap between the drop-down list and the combobox. Set breakpoint to Keydown event causes program to freeze. Focus rectangle does not go with selection in loaded grid. AutoSearch highlights characters in opposite direction. Mouse pointer should not display the default OLE drag cursor. Highlight looks incorrect for the current selection BackColor and BackColorAlternate need Refresh in 256 resolutions. Unexpected thorns appear on (thick) gridlines. The focus rectangle loses two corners Dblclick on the outline tree plus button starts editing other cell Scroll behaviour is funny after showing Msgbox in BeforeScroll or AfterScroll ev ents. When RowHeight less than text height, refresh error Focus rectangle is incorrect after regaining focus. Top in CellBorder will affect the right border width. The Outline Column can be printed outside of the grid A line displays when setting MergeRow Need to reset merging when changing col types (to handle boolean cols) Fixed problem with node object's MoveIn/MoveOut methods SelChange not always firing with Select x,y method Allow to set col data type, fixed rows when bound to custom data sources

CellChanged event does not fire when it should fire. (resetcolinfo in DAO) Control will add one more column after call BuildComboList (fields with tabs) A line displays when setting MergeRow RowHeight property can clear data in outline bar. (clear needs to reset total in fo) When setting flexExMoveRows, node can not be expanded. (with the mouse) Smart ComboSearch for listbox gets wrong item. Cursor disappears when navigating in the cell. Fixed crash with DAO/Fox driver/255+ columns Better handling of gridlines when editing Can not input an underscore when EditMask on. Wrong cursor location after clearing EditMask. ShowMsgBox does not work in the Error event. (wrong error code) Illegally merge special characters. Can not show sort triangle when EditMask works (no text). Focus rectangle does not go with selection in loaded grid. (invalid cursor after loading) The control in the form was not same as control in Preview tab. (apply format af ter changing font) Check validation should be run (on OutlineCol). Smart ComboSearch for listbox gets wrong item. (when AutoSearch fails) No response when Sorting the nodes. Mouse moving cause the control to flicker When setting RightToLeft=True, the combo spin button behavior is strange. VB shuts down when dragging DBCS. (use alloc for drag-drop instead of W2T, free clip string) AutoSearch is case-sensitive with DBCS alphabet. (use vsStrCmp instead of lib fu ns) When typeing in the drop-down-list cell, VB will be frozen. No response when Sorting the nodes. (freeze when calling nd.Sort <badSetting>) OLEDrag & Drop acts funny ... (when cells contain tabs/returns). Made VSDataObject expose IDataObject interface

Support right to left in combo boxes Honor custom row delimiters when saving/loading text Various DBCS fixes OLE drag/drop with DBCS DBCS combo search is incorrect. Set font to default charset to work with Japanese fonts Fixed SimpleFrame to work with FoxPro Fixed new OleDragDrop to drag raw text instead of formatted Fixed new OleDragDrop so IEnumFormatEtc returns files too No automatic checkboxes for subtotal columns Fixed new OleDragDrop typo (was zapping the original data object) Back to IEnumFE.h to remove dependency on URLMON.DLL Fire BeforeMouseDown on editors so user can provide a custom context menu. For e xample: Private Sub fg_BeforeMouseDown(...) If Button = vbRightButton And fg.EditWindow <> 0 Then PopupMenu mCustomPopup Cancel = True End If End Sub Cell(flexcpPicture) now accepts a url string DataObject returns pointer to foreign object COM_INTERFACE_ENTRY_AGGREGATE Update sort glyphs when code sorting as well as clicking the ExplorerBar Fixed crash with combo lists in Unicode Getting ComboIndex with no combo should return -1, no error. Re-bind VSFlexDataSource if GetData raises an erro