Release Notes
Breaking Changes
To learn about breaking changes in this version, please refer to the following page:
Breaking Changes - DevExpress VCL 12.2.2
Known Issues
To learn about known issues in this version, please refer to the following page:
Known Issues - DevExpress VCL 12.2.2
The following sections list all minor and major changes in DevExpress VCL 12.2.2. Note that products, controls and libraries which aren't mentioned in the list below are included in the unified installer for compatibility, but have not been updated.
New Features/Changes
VCL Subscription
- S170194 - Add touch gesture support to all DevExpress VCL controls
- Q33312 - Implement a Wizard control, which creates multi-step wizard dialogs that conform to Wizard 97 and Aero Wizard standards
- S18163 - Play fading animation for an interactive element (an editor, button, or scrollbar) that the mouse pointer enters or leaves
ExpressBars Suite
- AS17162 - Improve the appearance of shadows displayed for toolbars, menus, and editor drop-down windows that are drawn with rounded corners
- Q426131 - Ribbon - Improve animation performance when scrolling in-Ribbon galleries
- S137608 - Ribbon - TdxRibbonBackstageView - Add the capability to display button separators in the left panel
- S131814 - TdxRibbonStatusBar and TdxStatusBar - Add support for a simple panel display style similar to that found in the standard TStatusBar
ExpressLayout Control
- S170046 - Add the capability to dynamically control the visibility of items in customization context menus
- Q433274 - Disable the "Group" and "Ungroup" items in customization context menus shown for layout elements located in a group whose Locked property is set to True and add the capability to switch the runtime visibility of these menu items
ExpressMemData
- Q417791 - Add the capability to persist data with string lists
ExpressOrgChart
- Q320680 - Add the capability to apply filtering to zoomed images in order to improve their quality
ExpressPrinting System
- S134218 - Composition Report Link - Add the capability to print multiple components on a page
- B143924 - Page Setup - Add the capability modify a print style name via the "Style Name" field both at design and runtime
- S133956 - Page Setup - Add the capability to display more predefined function buttons on the Header/Footer page
ExpressQuantumGrid Suite
- S170195 - Server Mode - Add an in-place editing capability
- Q413969 - Server Mode - Add support for Advantage databases
- S170008 - Server Mode - Add support for PostgreSQL databases
- S39900 - Server Mode - Add the capability to retrieve data with queries
- Q420091 - Server Mode - Implement a Banded Table View that provides support for this mode
ExpressQuantumTreeList Suite
- B141298 - Improve performance when scrolling a large number of cells if no background images are specified both for these cells and the tree list
ExpressScheduler Suite
- S130125 - Gantt View - Implement tree-like event hierarchies
ExpressSkins Library
- S137333 - Add skin settings that customize the font and background colors of the inactive selection in container controls
- Q101255 - ExpressQuantumTreeList and ExpressVerticalGrid - Add the capability to apply colors defined in a skin to even and odd nodes/rows
ExpressSpellChecker
- S170285 - Exclude DevExpress editors that do not support text input and editors whose Properties.EchoMode property is set to eemPassword from spell checking with the CheckContainer method
ExpressTile Control
- Q416540 - Add the capability to center the main page content regardless of the detail page content
- S39844 - Add the capability to change the number of rows occupied by a tile
- S170074 - Add the capability to determine if a specific point corresponds to a tile control's action bar or action button using HitTest information
- S170132 - Add the capability to disable text animation in tiles
- Q414747 - Add the capability to display tile group captions
- S170110 - Add the capability to select tiles and display check marks for selected tiles
- S170139 - Add the design-time capability to double-click a tile item to add an empty implementation of its OnClick event handler into the code
- S170313 - Implement design-time context menus for tile items and groups
- S170107 - Improve the painting mechanism of the segmented fade and random segmented fade animation transition effects
- S39823 - Provide events that enable in-depth control of drag-and-drop operations on tiles
ExpressVerticalGrid Suite
- S39825 - Add the capability to apply separate styles to even and odd rows
- S133167 - TcxRTTIInspector - Add the capability to display read-only properties
Common Libraries
ExpressEditors Library
- S20031 - Add the capability to customize the manner in which validation errors are handled and visualized in standalone and in-place editors
- Q432704 - Alert windows - Add the capability to dynamically initialize window options and contents before automatic size adjustments take place
- AS4904 - cxDateEdit - Prohibit selecting a date outside the Properties.MinDate/Properties.MaxDate range in the drop-down calendar
- S170238 - cxFilterControl - Improve the appearance of drop-down windows
- S170070 - cxTrackBar - Add the capability to change the thumb position using specially designed buttons
- AS13883 - cxTrackBar - Add the capability to click the track bar to jump the thumb to this position and then drag the thumb while holding down the left mouse button
- AS3670 - cxTrackBar - Add the capability to display custom tick labels
- S170068 - cxTrackBar - Add the capability to reverse the scale direction
- S170081 - cxTrackBar - Add the capability to show the slider's current position in a hint and dynamically control its visibility and contents
- S170069 - cxTrackBar - Add the capability to specify the amount by which the slider's position is changed when pressing the arrow keys
- S170071 - cxTrackBar - Add the capability to validate slider position changes
- S170246 - cxTrackBar - Add the capability to visualize tick marks with lines and text labels
- S20153 - Implement a group box control with a check box in its caption which switches the enabled state of child controls
- S131880 - Implement a track bar editor similar to the zoom slider found in Microsoft Office
- Q434839 - Rename the DecMonth, IncMonth, and ChangeMonth methods declared in the cxDateUtils unit to avoid clashes with calls to SysUtils counterparts
- Q432199 - TcxButton - Add the command link appearance
- S39384 - TcxButton - Implement custom draw capabilities
- S170105 - TcxImageCollection - Add the design-time capability to select one or more image files and automatically create collection items for them
- Q362231 - TcxScrollBox - Add the capability to switch the background transparency
- Q441092 - TcxScrollBox - Add the capability to use custom scrollbar settings
- S39805 - TdxImageSlider - Add more animation transition effects
- S39803 - TdxImageSlider - Add the capability to control the border visibility
- S170094 - TdxImageSlider - Add the capability to programmatically slide images with animation
ExpressGDI+ Library
- S134990 - Add missing declarations of GDI+ functions to the dxGDIPlusAPI unit
ExpressLibrary
- S170129 - Add the capability to replace the size grip and scrollbars in TcxControl descendants with non-windowed painted elements
- S170111 - Extend TcxImageFitMode with a sizing option that allows an image to fill the entire area, maintaining the aspect ratio
- S91509 - ScreenTips - Add support for rich text formatting to all ScreenTip sections
- Q446451 - TcxPropertiesStore - Improve the design-time editor's appearance and behavior
Resolved Issues
VCL Subscription
- Q434991 - Data-aware container controls - Format settings are not applied to cells
- B230302 - Possible memory errors in 64-bit applications
ExpressBars Suite
- Q424222 - An AV occurs when trying to unmerge all sources from the specified Bar
- Q428325 - Narrowing a toolbar does not move TdxBarControlContainerItem controls to the Quick Customization Popup Menu
- Q417662 - Ribbon - An AV occurs when creating gallery categories in TdxRibbonGalleryItem if a bar manager resides on a frame that has no parent
- Q440463 - Ribbon - TdxBarApplicationMenu - Check marks displayed for TdxBarLargeButton items appear highly pixelated
- Q441061 - Ribbon - TdxRibbonBackstageView opened in a new Ribbon Form created in an application remains visible on screen if this Ribbon Form is closed via its Close button
- Q447383 - Ribbon Application Menu - Application Menu buttons have an incorrect height if skins are applied or the Ribbon control's Style property is set to rs2007
- Q432187 - Ribbon ApplicationButton is not drawn correctly on Aero Glass when TdxSkinController.UseImageSet is set to imsAlternate and TdxRibbon.Style is set to rs2010
- Q425185 - Ribbon Form - Incorrect text color is applied to a maximized form's caption
- B219006 - TcxBarEditItem - LookupComboBox - An error occurs when moving focus from one lookup bar item to another
- B212883 - TdxRibbonForm has very small borders if TForm.BorderStyle is not equal to bsSizeble / bsSizeToolWin and Windows Aero is enabled
- Q428463 - The Access Violation exception is thrown on application closing when manually merging one or more bars placed on Ribbon
- Q424029 - The content of the Ribbon drop-down gallery is not drawn if TdxBarManager.MenuAnimations = maFade
- Q442126 - The pop-up position is incorrectly calculated for a toolbar popup menu
- Q424001 - The ScrollBar of a drop-down window of the TdxSkinChooserGalleryItem is not skinned when using skins
ExpressDocking Library
- Q440931 - TdxDockPanel is not activated by clicking the panel's tab in TdxTabContainerDockSite
ExpressFlowChart
- Q425501 - ExpressFlowChart Editor - Setting an object frame's edge style to RaisedOut does not apply the corresponding style
ExpressLayout Control
- Q434679 - A layout group fires the OnTabChanging event twice if the event's handler calls Application.ProcessMessages
- Q433283 - A layout group with a label layout item that is set to occupy the entire client area of its group has an incorrect width
- Q444688 - Activating a tabbed group's tab does not move focus from the previously focused item of another tab page to the first item of the activated tab page
- B230414 - An AV occurs when switching the Enabled property of a linked control whose Handle is not yet created
- B210436 - Import - Align property values of imported controls are not taken into account
- Q426723 - The bevel size is ignored if the layout control's AutoSize property is enabled
- Q439858 - The layout control with a layout item linked to the cxLabel control is not sized based on the AutoSize property value
ExpressMemData
- Q425125 - An AV occurs when calling the LoadFromDataSet method after the Fields.Clear method call
- Q424652 - When multiple items are selected in TdxMemData Field Editor, item moving via the Move Up and Move Down buttons is incorrect
ExpressPageControl
- Q445788 - TcxPageControl - The OnPageChanging event is fired twice if False is passed as the AllowChange event parameter
ExpressPrinting System
- Q417323 - An empty or incorrect output is generated when printing a report with multiple pages to a fax printing device
- Q440760 - Export to PDF - The File Save dialog is not shown if the default file name for a report is too long
- Q441341 - Export to PDF - The range specified by the Pages dialog field overrides the selected All option
- Q444950 - Grid Report Link - The "Index out of bounds" exception occurs when generating a report for the grid that is grouped by an empty string
- B218629 - In the Page Number Format dialog, the "Start At" field value is incorrectly validated for character-based number formats
- Q444062 - Redefining HRGN and HDC types leads to conflicts in C++Builder
- Q444646 - Report Preview dialog - Changing the FitToPage option does not refresh the cache for invisible pages
- Q441608 - Ribbon Print Preview - Custom background colors defined in the Color dialog are not persisted
- B220697 - Scheduler Report Link - Gantt View - Events that do not fit into the first report page are not printed
- Q441036 - SpreadSheet Report Link - An AV occurs when rendering the report if the ssovGridLines and ssovSuppressSourceFormats flags are set in the link's OptionsView property set
- B218627 - TBasedxReportLink descendants - Customized values of the TimeFormat, DateFormat and PageFormat properties are reset to their default values in some cases if default formats have been customized at the TdxComponentPrinter level
- Q440453 - TdxComponentPrinter - The Date And Time dialog cannot be re-opened after the last time format has been selected in the Available Time Formats list
- Q442434 - TeeChart Report Link - Compilation errors occur if the TeeChart Pro version is installed to RAD Studio XE3
- Q435027 - The Print Preview window freezes when invoked from a window located in a DLL file
- B219022 - TreeList Report Link - Rich text formatting is missing when printing cxRichEdit columns
- Q441309 - TreeList Report Link - The OptionsView.HeaderAutoHeight property is not taken into account when printing a multi-line text
- Q431443 - Unnecessary page breaks are generated in some reports with footnotes
ExpressQuantumGrid Suite
- Q409102 - All Views except for Chart Views - The View's OnEditChanged and OnEditValueChanged events are not raised for grid items whose Properties.ImmediatePost property is set to True if dcoImmediatePost is set in the View's DataController.Options option set
- Q404033 - An exception is thrown when the selection is modified within the View's OnSelectionChanged event handler
- Q430561 - Assigning a Table View column to a Layout View data item or Card View row modifies the assignee's GroupIndex property
- Q421970 - Banded Table View - Loading the View with no bands from a DFM file at design time automatically creates a new band in error
- Q421870 - Banded Table View - Restoring the View may result in the "Index out of bounds" exception if the stored View information contains bands created at runtime
- Q421419 - Chart View - Items in a data level dropdown cannot be browsed using the mouse or clicked if the dropdown is not wide enough to display a vertical scrollbar
- Q434910 - Compilation errors occur after the View's Navigator.InfoPanel.OnClick event handler has been created at design time due to the missing cxNavigator unit in the 'uses' clause
- Q437880 - Data-aware Views - The "RecordIndex out of range" exception is thrown when removing a record if the View contains unbound columns
- Q433982 - Data-aware Views - The "RowIndex out of range" exception is thrown when updating the TClientDataSet bound to the View within a form's OnDestroy event handler using EmptyDataSet, etc.
- Q449204 - Documentation - The TcxGridLayoutViewStyles.OnGetGroupStyle topic has an incorrect description of the event's occurrence and the AItem event parameter
- Q424846 - Export - The ExportGridToHTML method does not export cell style if this cell is empty (displays no data)
- B218884 - Layout View - Card captions and currently focused items are incorrectly painted in selected cards
- B218883 - Layout View - Cell content areas are hot-tracked regardless of the View's OptionsBehavior.ItemHotTrack property value
- Q450017 - Layout View - Memory leaks when exporting or printing the View
- B216398 - Layout View - The caption in vertically stretched cards partially overflows View bounds if a filter box is displayed
- B218885 - Layout View - The text color specified in the View's Styles.OnGetItemStyle event handler is not applied to card layout items
- Q410043 - Master-Detail - An exception occurs when modifying data and pressing the Down Arrow key in the last two master View records if they are filtered out as a result of this and the View's DataController.Options option set includes dcoImmediatePost
- Q418832 - Memory leaks when multiple records/rows are selected
- Q420446 - Server mode - The "Wrong argument for hashing!" exception is thrown when a key field contains one or more NULL values
- B221556 - Sometimes the expanded state of groups is not preserved when deleting the last record in a group
- Q444697 - Table View and Banded Table View - Clicking a filter row cell within a lookup column raises an exception if the column's Properties.KeyFieldNames property contains more than one field
- B219740 - Table View and Banded Table View - The vertical scrollbar malfunctions if the View's Preview.AutoHeight property is set to True
- Q435475 - Tabular and Layout Views - The View does not synchronize edit value changes with the data controller in the OnEditChanged event handler if DataController.Options includes dcoImmediatePost, and a grid item's Properties.ImmediatePost property is set to True
- Q443708 - The embedded navigator produces painting artifacts if its Buttons.Images property is linked to an image list whose images are more than 11 pixels tall
- Q447868 - The View is incorrectly painted if the "Locked View" image is shown and the BorderWidth property is set to a value greater than 0
ExpressQuantumTreeList Suite
- Q438417 - Bands are switched when the TreeList control is restored from the saved layout
- Q446680 - In C++Builder, the "Ambiguity between 'Vcl::Imglist::TImageIndex' and 'System::Uitypes::TImageIndex'" error occurs when handling the OnGetNodeImageIndex event
- Q434260 - TcxDBTreeList refreshes all data if a bound dataset was edited via the TreeList control when the OptionsData.SmartRefresh property is set to True
- Q435693 - TcxTreeList - An AV occurs when adding nodes in RAD Studio XE3 at design time
- Q428145 - TcxTreeList - The node is not copied but moved in the TreeList control when the OptionsBehavior.AutoDragCopy property is set to True
- Q417936 - The DoWriteNodeToText function skips the node's first cell value when this cell contains an empty string
- Q427639 - The drag-and-drop operation is not finished after closing the modal window invoked in the OnMouseDown event handler
- Q343695 - TreeList running in virtual Windows 2003 Server causes an "Out of Storage" error when maximizing a form
ExpressScheduler Suite
- Q421800 - An AV occurs when a new custom field is added to a storage linked to the scheduler if this storage contains events
- Q431232 - cxDateNavigator - The date navigator does not maintain the number of selected weeks always visible on screen when scrolling months backwards
- Q433746 - Day View - Resizing an event that lasts more than one day past 11:59pm increases the event's duration by one day if the ShowAllDayEventsInContentArea property is set to True
- Q420739 - Memory leaks on application exit if the Reminders.Active property is False and any appointments Reminder property is True
- Q442478 - TcxSchedulerAggregateStorage - Events with the same ID property value from different storages move together when moving one of them
- Q441313 - TcxSchedulerAggregateStorage - The Stack Overflow exception occurs when editing a recurrence series from the event editor dialog invoked for a custom
- Q427381 - The ADateTime parameter passed to the OnGetContentStyle event handler has an invalid NullDate value when switching from ViewDay to ViewTimeGrid or ViewGantt
ExpressSkins Library
- Q422936 - A drop-down window of TdxBarCombo is incorrectly painted when using skins
- Q424172 - Borders of an MDI child form are not hidden when TdxTabbedMDIManager is used with skins
- Q435604 - TdxBevel - Additional colors are not defined for the control in the Blueprint, DevExpressStyle, Seven, SevenClassic, VS2010, and Whiteprint skins
- B217627 - TForm without the WS_BORDER flag but with the WS_DLGFRAME flag is incorrectly skinned
- Q425003 - The help button is missing in the form's caption when using TdxSkinController
- Q418743 - The scrollbar background of the InRibbon-gallery is not painted correctly when skins are being used
- Q436337 - The Skin Editor does not generate skin packages for RAD Studio XE3
ExpressSpellChecker
- Q418079 - The EStackoverFlow exception is raised on attempt to obtain a list of suggestions for the French dictionary
- Q418004 - The Hungarian OpenOffice dictionary cannot be loaded
ExpressSpreadSheet
- Q444910 - C++Builder - The "Cannot focus disabled or invisible window" message is displayed when trying to post the editing formula with invalid parameters
- Q445265 - References to the 'E' column cells are parsed as floating-point numbers when compiling a 64-bit application
- Q447101 - Sometimes loading or saving an XLS file fails when compiling a 64-bit application
- B218380 - The TcxSSViewInfoData record fields in the cxSSViewInfo.hpp file generated by a C++Builder application have an invalid alignment
ExpressTile Control
- Q441233 - An AV occurs when calling the StoreToIniFile method if the tile control contains a tile item that is not linked to any group
- B217465 - Cannot assign the nil value to the ActionBarItem.Glyph property
- B217201 - Changes to the Title.Tabs~ properties are not stored to a DFM file and, as a result, new property settings are not applied to the tile control
- Q432087 - cxDateEdit controls are not displayed on a detail page when activating this page for the second and subsequent times in Windows XP
- B218389 - Focus does not move to the previous/next row when it passes the first/last tile within the current row if a tile control's OptionsBehavior.FocusItemOnCycle property is set to True
- Q419730 - Small OptionsView.IndentHorz property value hides the back arrow on the detail page
- Q420279 - The Align property can't be set to the alNone value at design time
- Q420287 - The border of the control is always visible even if the BorderStyle property is the cxcbsNone value
- B217433 - The OnInitStoredObject event does not fire when tile control settings are restored from an external data store using RestoreFrom~ method calls
- B230801 - The RestoreFromIniFile method call with the AChildrenDeleting parameter set to True may not restore values of properties added in the tile item's OnGetStoredProperties event handler
- Q420385 - The TileControl.Groups.Add method raises an Access Violation if the TileControl is not locked using the BeginUpdate/EndUpdate section
- B219406 - TileControl.Items displaying is not correctly updated on changing TileControl.OptionsView.ItemSize
- B219261 - Tiles are always hot-tracked regardless of a tile control's OptionsBehavior.ItemHotTrack property value
ExpressVerticalGrid Suite
- Q439250 - Closing the Customization form does not disable the customization mode in error
- Q425537 - TcxDBVerticalGrid - An exception is thrown when removing an element from the Properties.Editors collection of a data-aware multi editor row
- B219140 - TcxRTTIInspector - Switching the OptionsView.Sorted property at design time populates the object inspector with the inspected object's properties, in error
Common Libraries
ExpressDataController
- B219984 - Server Mode data sources - The PopulateTableNames method and the TableName property return an empty list when disconnecting the linked connection, unlinking it from the data source, connecting it again and then linking it back to the data source
- B198486 - The ARecordIndex1 and ARecordIndex2 parameters can contain negative values in the OnCompare event when grouping ExpressQuantumGrid records
ExpressEditors Library
- Q424782 - All TcxCustomEdit descendants - The edit value validated via the ValidateEdit method call within an OnChange event handler cannot be posted if the value was changed by pasting from the clipboard
- B230084 - An AV occurs when the embedded navigator changes its size in response to clicking one of its buttons
- Q434043 - Background and text colors are not applied to a read-only editor if its Properties.ReadOnly property is set via RepositoryItem
- Q424160 - cxCheckBox - Invalid TcxCheckBox.Checked behavior while the component is loading
- Q442713 - cxDateEdit - An incorrect edit value is posted if the Properties.EditFormat property is set to the 'mm.yyyy' or 'yyyy' value
- Q434045 - cxMemo - Scrollbars are not shown if the editor is the last object in a DFM file, the editor has no text, and its Properties.ScrollBars property is set to ssBoth at design time
- B231131 - cxRichEdit - The Properties.AdvancedTypography property is not enabled by default to support text justification
- B230085 - cxTextEdit - The bottom border is not painted after the Properties.EchoMode property has been changed
- B218869 - dxBreadCrumbEdit - A node's DeleteChildren method does not update the node's HasChildren property
- Q437728 - dxBreadcrumbEdit - An AV occurs when clicking the Root in a node's drop-down window when the selected node's children are repopulated within an OnPathSelect event handler
- Q422869 - dxColorEdit does not open a color dropdown when clicking on a color
- B217330 - dxColorGallery - Clicking the currently selected color fires the OnChange event, in error
- B213307 - ExpressEditors are erroneously painted by VCL styles, as if they are standard VCL editors
- B230991 - In-place cxRichEdit - An editor that contains a justified text does not display it justified in display mode
- Q441265 - Setting Properties.UseNullString to True at design time stores Properties.NullString to Text, which results in an invalid EditValue at runtime
- Q436036 - Some editors discard changes to the edit value if these changes were made by pasting data from the clipboard, using the Backspace key, etc.
- Q451356 - TcxDBImage - With VCL 12.1.6, the Transparent property is no longer public
- Q433948 - TcxImage - Intersections with other transparent DevExpress editors may appear distorted
- B217377 - TcxImageCollection does not notify listeners about item content updates and item repositions within the collection
- Q440954 - TcxScrollBox - The Create method does not use the GetViewInfoClass method
- Q436691 - TcxShellBrowserDialog - Memory leaks when selecting a file or folder in the dialog and clicking the OK button
- Q432788 - TcxSplitter - In Delphi 2010 and later, changes to the AlignSplitter property erroneously cause form resizing
- Q431767 - TdxDBBreadcrumbEdit does not update its content after a new record is inserted into a database table in XE2 Update 4
- B217357 - TdxGalleryControl has an incorrect item layout if the ItemTextPosition property is set to posBottom or posTop
- Q419987 - TdxImageSlider - ItemIndex set at design time is not used at runtime
- Q434498 - TdxShellBreadcrumbEdit - An AV occurs when selecting a file in a linked shell tree view
- B218303 - TdxShellBreadcrumbEdit - Files selected in a linked shell tree view are added as nodes (folders) to the breadcrumb editor
- Q427243 - The "class TcxEditRepositoryColorEdit not found" exception is thrown when loading a form with the TcxEditRepository component containing TcxEditRepositoryColorEdit
- Q423663 - The Properties.Nullstring property value is ignored in in-place editors that provide text editing capabilities
ExpressLibrary
-
- Q424888 - Access Violation exception is thrown on an attempt to unload a DLL without initialization using the dxInitialize method
- Q449925 - dxFader - AV occurs when trying to FadeIn or FadeOut an element if dxFader.MaxAnimationCount = 0
- Q430020 - TcxHintStyleController - Hint for TcxTabSheet's Close button is incorrectly positioned when skins are used
- Q432285 - TdxScreenTip - An AV occurs when displaying hints for ExpressQuantumGrid cells after ScreenTips have been shown by hint controllers located on other forms
- B209320 - The cxPaintTo procedure does not paint a source control's UI elements that represent windowed controls