For those of you who made some stuff in Delphi 4 already, but need to compile it in C++Builder 3 or Delphi 3 as well: note that there are several new VCL components in Delphi 4.
And that's not all: there are also new properties added to existing components, such as Anchors and Constraints.
And the "OldCreateOrder" property should be set to "true" for version 3, and "false" for version 4 (but an "upgrade" switch never made it to the final Convert3 application).
I've written a little command-line utility CONVERT3.ZIP (116,781 bytes) to strip those Delphi 4 properties from all your forms, so you can recompile them using C++Builder 3 or Delphi 3 again (note: you need CONVERT2 if you want to downgrade Delphi 3 Forms).
The utility now works directly with ".DFM" files (and accepts wildcards such as "*.DFM"), so no need to run Borland's CONVERT anymore.
It leaves a ".TXT" and ".BAK" file behind.
The ".BAK" is the ".TXT" but with the Delphi 4 properties included (which are also removed from the original ".DFM" file).
Of course, you should always make a backup of your original program before running Convert3.EXE.
This utility works for me, it's free to use by anyone, but I will not be held responsible for any damage or loss of data.
Usage: Convert3.exe delphi4.dfm
where delphi4.dfm is a Delphi 4 Form (may contain wildcards)
For an overview of the 164 new components: Convert3.exe /?
For new properties for a specific component: Convert3.exe /? classname
There are 186 new VCL components in Delphi 4, and 1388 new properties in total.
The new VCL components are as follows (output from Convert3.exe):
- EBrokerException
- ECommonCalendarError
- ECorbaDispatch
- ECorbaException
- EDSWriter
- EExternal
- EHeapException
- EMonthCalError
- TAbstractSocket
- TAction
- TActionLink
- TActionLinkClass
- TActionList
- TADTField
- TAggregate
- TAggregateField
- TAggregates
- TArrayField
- TBaseDragControlObject
- TBaseProvider
- TBasicAction
- TBasicActionClass
- TBasicActionLink
- TBasicActionLinkClass
- TBOA
- TButtonActionLink
- TButtonActionLinkClass
- TCachedQuery
- TCOMConnection
- TCommonCalendar
- TContainedAction
- TContainedActionClass
- TControlAccess
- TControlActionLink
- TControlActionLinkClass
- TControlBar
- TCorbaBindThread
- TCorbaComObjectFactory
- TCorbaConnection
- TCorbaDataModule
- TCorbaDispatchStub
- TCorbaFactory
- TCorbaFactoryManager
- TCorbaImplementation
- TCorbaImplementationClass
- TCorbaInterfaceIDManager
- TCorbaListManager
- TCorbaObjectFactory
- TCorbaSkeleton
- TCorbaSkeletonClass
- TCorbaSkeletonManager
- TCorbaStub
- TCorbaStubClass
- TCorbaStubManager
- TCorbaVclComponentAdapter
- TCorbaVclComponentFactory
- TCustomAction
- TCustomActionList
- TCustomActiveForm
- TCustomControlBar
- TCustomDockForm
- TCustomIniFile
- TCustomObjectBroker
- TCustomPacketWriter
- TCustomResolver
- TDataBindings
- TDataBindItem
- TDataBrokerSkeleton
- TDataBrokerStub
- TDataPacketWriter
- TDataSetAction
- TDataSetCancel
- TDataSetDelete
- TDataSetEdit
- TDataSetField
- TDataSetFirst
- TDataSetInsert
- TDataSetLast
- TDataSetNext
- TDataSetPageProducer
- TDataSetPost
- TDataSetPrior
- TDataSetProvider
- TDataSetRefresh
- TDataSetResolver
- TDBOleControl
- TDCOMConnection
- TDefCollection
- TDependencies
- TDependency
- TDetailDataLink
- TDispatchConnection
- TDockTree
- TDockZone
- TDragDockObject
- TDragImageList
- TDRAttrDescList
- TEditAction
- TEditCopy
- TEditCut
- TEditPaste
- TEventLogger
- TFieldDefList
- TFieldList
- TFields
- TFlatList
- THintAction
- TIModuleCreatorEx
- TInterfaceList
- TIProjectCreator
- TIProjectCreatorEx
- TIResourceEntry
- TIResourceFile
- TISAPIApplication
- TISAPIApplicationList
- TISAPIRequest
- TISAPIResponse
- TISAPISession
- TIStreamAdapter
- TIToolServices
- TIVCSClient
- TIVirtualFileSystem
- TLargeintField
- TMemIniFile
- TMenuActionLink
- TMenuActionLinkClass
- TMenuItemAccess
- TMidasConnection
- TMonitor
- TMonthCalColors
- TMonthCalendar
- TMouse
- TMPFilenameProperty
- TMtsAutoObject
- TMtsDataModule
- TMultiReadExclusiveWriteSynchronizer
- TNamedItem
- TNestedProperty
- TNestedTable
- TObjectField
- TOLEnterpriseConnection
- TORB
- TOwnedCollection
- TPacketDataSet
- TPageScroller
- TPatternManager
- TPropertyPageImpl
- TPropFixup
- TPropInfoList
- TPropPages
- TPropReader
- TPropWriter
- TProviderSkeleton
- TProviderStub
- TReferenceField
- TRegistryIniFile
- TRemoteDataModule
- TSelectionList
- TServerCollection
- TServerItem
- TService
- TServiceApplication
- TServiceClass
- TServiceStartThread
- TServiceThread
- TSimpleObjectBroker
- TSiteList
- TSizeConstraints
- TSQLResolver
- TToolBarDockObject
- TToolButtonActionLink
- TToolButtonActionLinkClass
- TToolDockForm
- TToolDockObject
- TUpdateTree
- TUpDown
- TWinControlActionLink
- TWinControlActionLinkClass
- TWindowAction
- TWindowArrange
- TWindowCascade
- TWindowClose
- TWindowMinimizeAll
- TWindowTileHorizontal
- TWindowTileVertical
- TWinSocketStream
There are 139 modified VCL (base-)components in Delphi 4:
- EUpdateError
- TActiveForm
- TActiveXControl
- TActiveXPropertyPage
- TAnimate
- TApplication
- TAutoObject
- TAutoObjectFactory
- TBaseDragControlObject
- TBCDField
- TBDEDataSet
- TBevel
- TBitBtn
- TButton
- TButtonControl
- TCalendar
- TCanvas
- TCheckBox
- TCheckListBox
- TClientDataSet
- TCollection
- TColorGrid
- TColumn
- TColumnTitle
- TComboBox
- TComObject
- TComServerObject
- TConnectionPoints
- TControl
- TControlScrollBar
- TCoolBar
- TCustomComboBox
- TCustomEdit
- TCustomForm
- TCustomListView
- TCustomMemo
- TCustomTabControl
- TCustomTreeView
- TDatabase
- TDataLink
- TDataModule
- TDataSource
- TDateTimePicker
- TDBCheckBox
- TDBComboBox
- TDBCtrlGrid
- TDBDataSet
- TDBEdit
- TDBGrid
- TDBImage
- TDBListBox
- TDBLookupCombo
- TDBLookupComboBox
- TDBLookupControl
- TDBLookupList
- TDBLookupListBox
- TDBMemo
- TDBNavigator
- TDBRadioGroup
- TDBRichEdit
- TDBText
- TDirectoryListBox
- TDirectoryOutline
- TDragObject
- TDrawGrid
- TDriveComboBox
- TEdit
- TField
- TFieldDef
- TFieldDefs
- TFileListBox
- TFilterComboBox
- TFilterExpr
- TFindDialog
- TFloatField
- TForm
- TGauge
- TGroupBox
- THeader
- THeaderControl
- THeaderSection
- THintWindow
- THotKey
- TImage
- TIndexDef
- TISAPIRequest
- TLabel
- TListBox
- TListColumn
- TListItem
- TListView
- TMainMenu
- TMaskEdit
- TMediaPlayer
- TMemo
- TMenu
- TMenuItem
- TNotebook
- TOleContainer
- TOleControl
- TOpenDialog
- TOutline
- TPageControl
- TPaintBox
- TPanel
- TParam
- TParser
- TPopupMenu
- TProgressBar
- TPropertyPage
- TProvider
- TQuery
- TRadioButton
- TRadioGroup
- TRichEdit
- TScreen
- TScrollBar
- TScrollBox
- TShape
- TSpeedButton
- TSpinButton
- TSpinEdit
- TSplitter
- TStaticText
- TStatusBar
- TStatusPanel
- TStreamAdapter
- TStringField
- TStrings
- TTabbedNotebook
- TTabControl
- TTable
- TTabSet
- TTabSheet
- TToolBar
- TToolButton
- TTrackBar
- TTreeView
- TWinControl
Note that a lot of these new components were actually introduced because of the new TActionList.
Convert3 is freeware, provided as-is, but use at your own risk (I cannot be held responsible for anything that goes wrong while using this tool), but I'm open to feedback, suggestions and other comments by e-mail to info@eBob42.com.