DevExpress tCx equivalents of tDx components - Felix John COLIBRI. |
- abstract : simple tDx to tCx equivalent list to help migrating old tDx applications to the current tCx version
- key words : DevExpress, tDx, tCx, Express Quantum Grid
- software used : Windows XP Home, Delphi 6
- hardware used : Pentium 2.800Mhz, 512 M memory, 140 G hard disc
- scope : Delphi 4, 5, 6, 7 to 2006, Delphi 2005, to 2010, Delphi Xe, Delphi Seatle, Delphi Berlin
- level : Delphi developer
- plan :
1 - Converting from tDx to tCx We are in the process of migrating delphi 4, delphi 5, delphi 6 and Delphi 7 applications to Delphi Xe and superior versions.
The tDx DevExpress components have NOT been migrated to Unicode / 64 bits. Instead, DevExpress offers a whole new bunch of tCx components.
Therefore, in order to migrate a tDx application to post Delphi 2010 version, you have to tackle somehow the migration of the tDx components. One solution is to convert tDx to tCx.
A first step is to compare the available components, and this is the topic of this article.
2 - The tDx to tCx equivalent list 2.1 - The DevExpress version used
We had to work on a DevExpress version containing BOTH tDx and tCx components. This version which was used for Delphi 7 contained: cxLibraryMajorVersion = '6';
In addition we only analyzed the packages up to the grids (the core, the editors, the grids). We did not include the more exotic components like those in ExpressSpellChecker.dpk, ExpressInspector etc.
2.2 - The methodology
In order to make our comparison - we simply extracted the components from the RegisterComponents statements.
- The resulting list was first separated into tDx and tCx lists.
- We then created 3 categories
- edits and controls (tDxEdit, tCxButton etc)
- dbControls (tDxDbEdit etc)
- other more complex controls (grids, treelists, listviews) and components (localiser, shell components etc)
Our classification is somewhat arbitrary, but you can reorganize the result if necessary. - Each of those lists were sorted.
- After that we created a diff of both lists
2.3 - The equivalents list
Simple controls
TdxBlobEdit TcxBlobEdit
TcxButton
TdxButtonEdit TcxButtonEdit
TdxCalcEdit TcxCalcEdit
TdxCalcDisplay
TdxCalculator
TdxCheckEdit
TdxCheckEditStyleController
TcxCheckBox
TcxCheckComboBox
TcxCheckGroup
TcxCheckListBox
TcxColorComboBox
TcxComboBox
TdxCurrencyEdit TcxCurrencyEdit
TdxDateEdit TcxDateEdit
TdxEdit -TcxTextEdit-
TcxDefaultEditStyleController
TcxEditRepository
TcxExtLookupComboBox
TcxFilterControl
TdxEditStyleController TcxEditStyleController
TdxGraphicEdit
TcxFontNameComboBox
TcxGroupBox
TdxHyperLinkEdit TcxHyperLinkEdit
TdxImageEdit -TcxImage-
TcxImageComboBox
TcxImageCollection
TcxImageList
TcxLabel
TcxListBox
TdxLookupEdit -TcxLookupComboBox-
TdxMaskEdit TcxMaskEdit
TdxMemo TcxMemo
TcxMCListBox
TdxMRUEdit TcxMRUEdit
TdxPickEdit
TcxNavigator
TdxPopupEdit TcxPopupEdit
TcxProgressBar
TcxRadioButton
TcxRadioGroup
TcxRichEdit
TcxSpinButton
TdxSpinEdit TcxSpinEdit
TcxSplitter
TdxTimeEdit TcxTimeEdit
TcxTrackBar
Db controls
TdxDBBlobEdit TcxDBBlobEdit
TdxDBButtonEdit TcxDBButtonEdit
TdxDBCalcEdit TcxDBCalcEdit
TdxDBCheckEdit
TcxDBCheckBox
TcxDBCheckComboBox
TcxDBCheckGroup
TcxDBCheckListBox
TcxDBColorComboBox
TcxDBComboBox
TdxDBCurrencyEdit TcxDBCurrencyEdit
TdxDBDateEdit TcxDBDateEdit
TdxDBEdit
TdxDBExtLookupEdit TcxDBExtLookupComboBox
TdxDBGraphicEdit
TcxDBFilterControl
TcxDBFontNameComboBox
TdxDBHyperLinkEdit TcxDBHyperLinkEdit
TdxDBImageEdit -TcxDBImage-
TdxDBLookupEdit
TcxDBImageComboBox
TcxDBLabel
TcxDBListBox
TcxDBLookupComboBox
TdxDBMaskEdit TcxDBMaskEdit
TdxDBMemo TcxDBMemo
TdxDBMRUEdit TcxDBMRUEdit
TdxDBPickEdit
TcxDBNavigator
TdxDBPopupEdit TcxDBPopupEdit
TcxDBProgressBar
TcxDBRadioGroup
TcxDBRichEdit
TcxDBShellComboBox
TdxDBSpinEdit TcxDBSpinEdit
TcxDBTextEdit
TdxDBTimeEdit TcxDBTimeEdit
TcxDBTrackBar
TcxDBTreeList
Other controls and components
TdxDBGrid -TcxGrid-
TdxDBGridLayoutList
TcxGridPopupMenu
TcxGridViewRepository
TcxHintStyleController
TcxListView
TcxLocalizer
TcxLookAndFeelController
TcxPageControl
TcxPropertiesStore
TcxShellBrowserDialog
TcxShellComboBox
TcxShellListView
TcxShellTreeView
TcxStyleRepository
TcxTabControl
TdxDBTreeList
TdxTreeList TcxTreeList
TcxTreeView
TcxVirtualTreeList
|
2.4 - Remarks Please note: - our comparison is only based on names. We have NOT checked whether the properties / methods / events are the same. For the tDxDbGrid 178
properties among 526 have no direct equivalent. In addition the behaviour of components with the same name has not been analyzed
- for some components, we assumed that there was some likeliness, even if the names do not totally match:
- in other cases, the names are quite different but the substitution looks likely
- tDxEdit and tCxTextEdit
- TdxLookupEdit and TcxLookupComboBox
- our tDx list is not complete. We found a post asking for equivalents for
which we did not locate in our sources (not in any of the .PAS we had at
hand). The post was dated 2015, but our version of DevX is likely to be from 2002. - this article also does not present
- the components which are not in the palette (the InPlaceEdits, for instance)
- the architectural differences between the two component sets.
In conclusion, we simply presented a "name based equivalence list"
2.5 - How to get help One possibility is to post a question in the DevExpress forum.
3 - References To perform the migration, we use an
autoamtic transformation tool.
We also offer migration services, training and support
4 - The author
Felix John COLIBRI works at the Pascal Institute. Starting with Pascal in 1979, he then became involved with Object Oriented Programming, Delphi, Sql, Tcp/Ip, Html, UML. Currently, he is mainly
active in the area of custom software development (new projects, maintenance, audits, BDE migration, Delphi
Xe_n migrations, refactoring), Delphi Consulting and Delph
training. His web site features tutorials, technical papers about programming with full downloadable source code, and the description and calendar of forthcoming Delphi, FireBird, Tcp/IP, Web Services, OOP / UML, Design Patterns, Unit Testing training sessions. |