Showing posts with label Delphi 7. Show all posts
Showing posts with label Delphi 7. Show all posts

TitleBar - Delphi component which adds many features: AutoHide, SetRegion, border width for form, color for everything, good looking borders, ShowInTaskbar, etc.

TitleBar - Delphi component which adds many features
This is a curiosity component demonstrates, what can be made of Delphi forms and control elements.
This is another note for Delphi code modernization trend
Changes in TTitleBar by Valient Newman in an attempt to revive an old project and to make the component meet the requirements of Delphi 6 and higher.
Corrections were tested in Delphi 2007, 2009 environment. Date last modified by Newman: January 30, 2025
Checked in in Delphi 2007, 2009
Updated January 30, 2025

TTitleBar v2.01

TitleBar - Delphi component which adds many features: AutoHide, SetRegion, border width for form, color for everything, good looking borders, ShowInTaskbar, etc.

The components TTitleBar v2.01 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. Source code is provided free of charge. The software is provided to you “AS-IS”. As such, there is no guarantee of any support whatsoever.


credits to:
Seth Taylor made this component on February 8, 1999 on Delphi 3

DFS EllipsisPanel is Delphi component that can shorten the caption text, replacing it with '...'

TdfsEllipsis Panel Demo
Delphi code modernization trend
Changes in TdfsEllipsisPanel have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in 2009
Updated 22 dec 2025

TdfsEllipsisPanel v1.20

DFS EllipsisPanel is Delphi component that can shorten the caption text, replacing it with '...' when it does not fit the available space. Also a generic function that "ellipsifies" a string is provided.

The components TdfsEllipsisPanel v1.20 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. The software is provided to you "AS-IS". As such, there is no guarantee of any support whatsoever. The component throws an Access violation error and its source code can be used as an example for study.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”)
Copyright 1996, Brad Stowers. All Rights Reserved.

DFS GrabBar - Delphi component, grab bar, or splitter, to allow two windows to be resized simultaneously

TdfsGrabBar Demo
Delphi code modernization trend
Changes in TdfsGrabBar have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in 2009
Updated 22 dec 2025

TdfsGrabBar v1.17

DFS GrabBar is a bar that allows two TWinControl components to be resized by dragging it.

The components TdfsGrabBar v1.17 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. The software is provided to you "AS-IS". As such, there is no guarantee of any support whatsoever.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”)
Copyright 1996, Brad Stowers. All Rights Reserved.

DFS MRUFileList - Delphi component to simplify adding MRU file lists to menus

TMRUFList Demo with RadStudio Delphi 2009 Closed Files list
Delphi code modernization trend
Changes in TdfsMRUFileList have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in Delphi 2007, 2009
Updated 21 dec 2025

TdfsMRUFileList v2.68

DFS MRUFileList - Delphi component that greatly simplifies adding MRU file lists to menus.
TMRUFList Demo was made with RadStudio Delphi 2009 Closed Files list in mdFileNameOnly.

The components TdfsMRUFileList v2.68 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. The software is provided to you "AS-IS", and all risks and losses associated with it's use are assumed by you. As such, there is no guarantee of any support whatsoever.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”)
Copyright 1996, Brad Stowers. All Rights Reserved.

MiTeC File Explorer is Windows Explorer-like component

TMFileExplorer Demo
Delphi code modernization trend
Changes in TMFileExplorer have been made by Valient Newman to make the component meet the requirements of Delphi 6 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 20 dec 2025

TMFileExplorer v1.15

MiTeC File Explorer is Windows Explorer-like component.

The components TMFileExplorer v1.15 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All source code is provided free of charge. As such, there is no guarantee of any support whatsoever.



credits to:
Michal Mutl his GitHub
Copyright © 1999, 2003.

DFS Icon Controls: Icon ComboBox and Icon ListBox caching components for Delphi

TdfsIconComboBox Demo with Delphi 2009 icons
Delphi code modernization
Changes in TdfsIconComboBox and TdfsIconListBox have been made by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 18 dec 2025

TdfsIconComboBox and TdfsIconListBox v1.17

The caching Icon ComboBox and Icon ListBox components for Delphi.

A dropdown list style combobox that displays the icons that exist in a given file, and a listbox that displays the icons that exist in a given file, either horizontally or vertically.

TdfsIconListBox Demo with Delphi 2009 icons

Features: Optionally, the control can disable itself when the filename is invalid. Optionally, the control can load icons "on demand." This speeds up the initialization process greatly because all icons do not have to be loaded when the control is created. Many file formats can be read from, including: .EXE, .DLL, .ICO .ICL { PCTools? Icon Library .NIL { Norton Icon Library ListBox can simulate a grid of icons, allowing you to set the number of icons to be displayed in both the X and Y direction. This setting can be changed dynamically.

The components TdfsIconComboBox and TdfsIconListBox v1.17 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments. All DFS source code is provided free of charge. As such, there is no guarantee of any support whatsoever.



credits to:
Bradley D. Stowers The author of All Delphi Free Stuff (“DFS”) Copyright 1996, Brad Stowers. All Rights Reserved.

FWTrayIcon - component for registering class to work with the system tray

FWTrayIcon - component for registering class to work with the system tray demo
Delphi code modernization
Changes in TFWTrayIcon by Valient Newman to make the component meet the requirements of Delphi 2009 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 18 dec 2025

TFWTrayIcon v1.05

Сomponent for registering class to work with the system tray.

The component TFWTrayIcont v1.05 is available in My Github Repository

The component has realization issues for instance with hint display and the use of this component is on your own risk.

The software is provided as is without any garanties and warranty.
This component can be freely used and distributed in commercial and private environments.



credits to:
Fangorn Wizards Lab Exstension Library
Alexander (Rouse_) Bagel, his GitHub
© Fangorn Wizards Lab 1998 - 2005.

FWHint - component to register class to work with application hints

FWHint - component demo
Delphi code modernization
Changes in TFWHint by Valient Newman to make the component meet the requirements of Delphi 2009 and higher.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 17 dec 2025

TFWHint v1.05

Сomponent for registering class to work with application hints.

The component TFWHint v1.05 is available in My Github Repository

This component can be freely used and distributed in commercial and private environments.



credits to:
Fangorn Wizards Lab Exstension Library
Alexander (Rouse_) Bagel, his GitHub
© Fangorn Wizards Lab 1998 - 2005.

DlgTest is design-time testing of TCommonDialog component descendants

CodeGear Delphi 2007
Delphi legacy code modernization
Corrections brought in DlgTest by Valient Newman to make the component meet the requirements of Delphi 6, when the design-time and runtime code must be separated.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 17 dec 2025
The component DlgTest is available in My Github Repository This component can be freely used and distributed in commercial and private environments.

DlgTest v1.05

Design-time testing of TCommonDialog component descendants.
credits to :
Bradley D. Stowers The author of All Delphi Free Stuff ("DFS")
Copyright 1996, Brad Stowers. All Rights Reserved.

DFS Color Button

Delphi legacy code modernization
Corrections brought in CBtnForm, ColorAEd, DFSClrBn by Valient Newman to make the component meet the requirements of Delphi 2, 2009 and higher, where WinTypes, WinProcs units are absent.
Checked in Delphi 7 and Delphi 2007, 2009
Updated 15 dec 2025

TdfsColorButton v2.62

A Windows 95 and NT 4 style color selection button, which displays a palette of 20 color for fast selection and a button to bring up the color dialog.

This component can be freely used and distributed in commercial and private environments.

The component DFS Color Button is available in My Github Repository



credits to :
Bradley D. Stowers The author of All Delphi Free Stuff ("DFS")
Copyright 1996, Brad Stowers. All Rights Reserved.

HexEditor

HexEditor

Simple corrections brought in THexEditor, THexToCanvas by Valient Newman to make the component meet the requirements of Delphi 6 and higher, when the design-time and runtime code must be separated.
Changes published September 6, 2023


Updated 15 dec 2025

Corrections were made to comply with Delphi 2009 requirements.

Checked in Delphi 7 and Delphi 2007, 2009

This component is used in Activity and Authentication Analyzer

The component HexEditor is available in My Github Repository

THexEditor v1.18, THexToCanvas v1.0 Beta 2

THexEditor descends from TCustomGrid, and displays and edits hexadecimal/binary files THexToCanvas is a descendant of TComponent, assign a THexEditor to it, set some properties and you can paint the hex data to a canvas (e.g. printer canvas)

credits to:

John Hamm, john@snapjax.com, http://users.snapjax.com/john/ (s.b. for details)

Christophe LE CORFEC, CLC@khalif.com for his introduction to the EBCDIC format and the nice idea about half byte insert/delete

Philippe Chessa, Philippe_Chessa@compuserve.com for his suggestions about AsText, AsHex and better support for the french keyboard layout

Daniel Jensen, no_comply@usa.net for octal offset display and the INS-key recognition stuff

written by Markus Stephany, mirbir.st@t-online.de, http://home.t-online.de/home/mirbir.st


Переход на новые версии Delphi

F1026 File not found: 'DockForm.dcu'

CodeGear Delphi 2007
Migrating to Delphi 2005/2006/2007/2009/2010 and higher ussues while Delphi code modernization trend.
There is no DockForm.pas in Delphi 2005/2006/2007/2009/2010 sources but you can use it in your application.
DockForm with such a name appeared in Delphi 4/5, with name uDockForm was in Delphi 6/7.
This is a piece of humpbacked advice:
Just add "designide" in Project -> Options -> Packages -> Build with runtime packages.
The design time package with the code in it is needed, add to "require" section.
Such an advice is applied for research only purposes.
First: to run the application on a computer where Delphi is not installed, one will need the copy bpl-file is required.
Second: it is not allowed to deploy any of that code, copyright would be infringed. One should never be recompiling the code in the toolsapi source directory.
Stub unit
Unit can be used as a temporary measure, a palliative while migrating to new versions of Delphi
unit DockForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;
type
  TDockableForm = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DockableForm: TDockableForm;

implementation

{$R *.dfm}

end.

Stub DockForm.dfm
object DockableForm: TDockableForm
...
...
end

If you see "...", this means the code is incomplete and this is done intentionally.
If you are unable to apply this, please contact for assistance.
Вы видите "...", это означает, что код не завершён и сделано это намеренно.
Если вам не удалось применить, обращайтесь за консультацией.

Delphi Version Features

Feature Version
& operator for treating keywords as identifiersDelphi 2006
{$ALIGN} compiler directive can take additional parameter 16 to set 16 byte alignmentDelphi XE
{$CODEALIGN} compiler directiveDelphi XE
{$EXCESSPRECISION} compiler directive for 64 bit compilers onlyDelphi XE2
{$EXTERNALSYM} compiler directiveDelphi 4
{$HIGHCHARUNICODE} compiler directiveDelphi 2009
{$IF} & {$IFEND} compiler directivesDelphi 6
{$IFEND} directive no longer required to close {$IF} statements: {$ENDIF} can now be used instead.Delphi XE4
{$IFOPT} compiler directive supports long directives: e.g. {$IFOPT SCOPEDENUMS ON}Delphi 13
{$LEGACYIFEND} compiler directiveDelphi XE5
{$LIBPREFIX}, {$LIBSUFFIX} & {$LIBVERSION} compiler directivesDelphi 6
{$MESSAGE} compiler directiveDelphi 6
{$METHODINFO} compiler directiveDelphi 2006
{$POINTERMATH} compiler directiveDelphi 2009
{$PUSHOPT}& {$POPOPT} compiler directivesDelphi 13
{$REGION}& {$ENDREGION} compiler directivesDelphi XE
{$STRONGLINKTYPES} compiler directiveDelphi 4
{$TEXTBLOCK} compiler directive to determine how line breaks are treated in multiline strings.Delphi 12
{$WARN} compiler directiveDelphi 7
{$WRITEABLECONST} compiler directive default value changes from ON to OFF.Delphi 6
[ref] attributeDelphi XE3
0..9
16 bit compiler & support for Windows 3.1Delphi 1
32 bit compiler & support for Windows 95Delphi 2
64 bit compilerDelphi XE2
64 bit binary versions of the Delphi 32 and 64 bit compilersDelphi 12.2
A
Abstract classesDelphi 2006
Actions & action listsDelphi 4
Android 32 bit compiler & supportDelphi XE5
Android 64 bit compilerDelphi 10.4
Anonymous methods / closuresDelphi 2009
AnsiString replaces ShortString as the default string typeDelphi 2
AnsiStrings (System.AnsiStrings) unit introducedDelphi XE4
Atomic intrinsic functions AtomicExchange, AtomicIncrement, AtomicCmpExchange & AtomicDecrementDelphi XE3
AttributesDelphi 2010
B
Binary integer literals, e.g. %100101Delphi 11
Build groupsDelphi XE
C
class constructors / destructorsDelphi 2010
Class data (class var)Delphi 2006
Class helpersDelphi 2006
Class helpers and record helpers can no longer access private data of the related class or recordDelphi 10.1
Class propertiesDelphi 2005
Currency typeDelphi 2
Custom managed records, with Initialize and Finalize class operatorsDelphi 13
Custom managed records, with Initialize and Finalize class operators simplified with implicit Self referencesDelphi 10.4
D
Default intrinsic compiler routine (undocumented) that gets the default value of a given typeDelphi 2009
Default parameters in functions, procedures & methodsDelphi 4
delayed keyword (for loading of DLLs)Delphi 2010
dependency directive (for specifying the dependencies of an external library)Delphi XE4
deprecated directiveDelphi 6
deprecated directive with commentDelphi 2009
DirectX 10 supportDelphi XE3
DirectoryExists function moved to SysUtils unit from FileCtrlDelphi 6
Digit separators in integer and floating point literals: e.g. 1_000_000Delphi 11
dispid directiveDelphi 3
dispinterface directiveDelphi 3
Dynamic array concatenation and addition extensions. Dynamic arrays can be initialised by assigning an array constant, as in DI := [1, 2, 3]; and can be concatenated using code like DI := DI + [1, 2, 3]; or DI := DJ + DK, where DI, DJ DK are all dynamic integer arraysDelphi XE7
Dynamic array intrinsic routines. The Concat, Insert & Delete compiler intrinsic routines now operate on dynamic arraysDelphi XE7
Dynamic arraysDelphi 4
E
EncodePath, EncodeAuth, EncodeQuery & EncodeForm functionsDelphi 10.1
EOSError (instead of EWin32Error)Delphi 6
ExcludeTrailingPathDelimiter functionDelphi 6
Exit with result parameterDelphi 2009
experimental hinting directiveDelphi 6
Extended type changes size depending upon the hardware and operating systemDelphi XE2
F
FastMM memory managerDelphi 2006
Final methodsDelphi 2006
FireMonkey cross platform framework (FMX)Delphi XE2
FireMonkey cross platform framework v2 (FM)Delphi XE3
FixedInt & FixedUInt types - 32 bit signed & unsigned integers respectively across all platformsDelphi XE8
Floating point number comparison routines added to Math unit.Delphi 6
Focus mode in IDE editorDelphi 12.2
for.. in loopsDelphi 2005
Form inheritenceDelphi 2
FramesDelphi 5
Function inliningDelphi 2005
G
GenericsDelphi 2009
GetCompilerVersion & GetRTLVersion routines to get compiler & RTL versions as 16 bit unsigned integers with major version in the high byte and minor version in the low byteDelphi 12
GetTypeKind intrinsic compiler function (undocumented)Delphi XE7
H
HasWeakRef intrinsic compiler function (undocumented)Delphi XE7
Hash (System.Hash) unitDelphi XE8
I
IInterfaceDelphi 6
implements keyword for propertiesDelphi 4
IncludeTrailingPathDelim functionDelphi 6
Inline keywordDelphi 2005
Inline if statement (Conditional Ternary Operator)Delphi 13
Inline variable declarationsDelphi 10.3
Inner exceptionsDelphi 2009
Insert and Delete RTL routines can be used with dynamic arrays in a similar way to how they are used with stringsDelphi XE7
Int8 typeDelphi 2009
Int16 typeDelphi 2009
Int32 typeDelphi 2009
Int64 typeDelphi 4
Interface to object castingDelphi 2010
iOS 32 bit compiler & support reintroducedDelphi XE4
iOS 64 bit compilerDelphi XE8
IOUtils unitDelphi 2010
is not operatorDelphi 2013
IsConstValue intrinsic compiler function (undocumented)Delphi XE7
IsManagedType intrinsic compiler function (undocumented)Delphi XE7
IUnknown (COM based interfaces)7Delphi 3
L
LargeUint typeDelphi 13
library directiveDelphi 6
Linux compiler for server applicationsDelphi 10.2
Linux client platform support added via 3rd party FMXLinux libraryDelphi 10.3.1
Live bindings for VCL & FMXDelphi XE2
Long string literal support: string literals can now be longer than 255 charactersDelphi 12
LongInt & LongWord type sizes become platform dependent: 32 bit on 32 bit platforms, 64 bit on 64 bit platformsDelphi XE8
LongWord typeDelphi 4
M
MacOS ARM 64 bit compilerDelphi 11
macOS 32 bit compilerDelphi XE2
macOS 64 bit compilerDelphi 10.4
Margins and Padding properties on TControlDelphi 2006
MariaDB support addedDelphi 10.2
Markdown support in IDEDelphi 11.2
Metropolis UI for Windows 8 back to XPDelphi XE3
Mobile form designerDelphi XE4
MSBuild & build eventsDelphi 2007
Multiline string literals, delimited by triple quotes (''')Delphi 12
MySQL supportDelphi 2006
N
Namespaces [more info]Delphi 2005
NaN intrinsic functionDelphi 13
NameOf typeDelphi 4
NativeInt & NativeUInt typesDelphi 7
NativeInt & NativeUInt types become weak references. They can no longer be used as separate typesDelphi 12
Nested constants within classes / recordsDelphi 2005
Nested types within classesDelphi 2005
not in operatorDelphi 13
O
OLE automationDelphi 2
Operator overloading on recordsDelphi 2006
out parameters & keywordsDelphi 3
overload directiveDelphi 4
Overloading for functions, procedures and methodsDelphi 4
P
package keyword and change to install components in packagesDelphi 3
Parallel library in RTLDelphi XE7
platform directiveDelphi 6
Pointer type size becomes platform dependent: 32 bit on 32 bit platforms, 64 bit on 64 bit platformsDelphi XE2
PosEx introducedDelphi 7
PosEx became obsolete. Pos got third offset argumentDelphi XE3
R
real type changes from 8 bytes in size to 6 bytes and becomes an alias for Double. The Real48 is introduced as a 6 byte replacement for the old realDelphi 4
RaiseLastOSError procedureDelphi 6
Record Helpers for simple typesDelphi XE3
Record Helpers for simple types TDateTime and Currency typesDelphi 11
Records with methodsDelphi 2006
register calling conventionDelphi 2
Regular expression libraryDelphi XE
resourcestring statementDelphi 3
REST services componentsDelphi XE5
RTTI enhancementsDelphi 2010
S
SafeLoadLibrary functionDelphi 5
Scoped enumerators (must have type name prefix)Delphi 2009
Sealed classesDelphi 2006
Sensor support for VCL & FMXDelphi XE3
Skia integrationDelphi 12
Smart Code Insight with embedded AIDelphi 12.2
Split editor views in IDEDelphi 12
static directive for class methodsDelphi 2005
strict private and strict protected visibility specifiersDelphi 2005
string type is UnicodeStringDelphi 2009
StrUtils unitDelphi 6
T
TApplication.MainFormOnTaskbar propertyDelphi 2007
TArray type in System unitDelphi 2010
TBytes alias for array of ByteDelphi 2007
Text format form filesDelphi 5
TForm.ShowInTaskbar propertyDelphi 12
TFormatSettings and overloaded format and conversion routines that use itDelphi 7
threadvar keyword and threading supportDelphi 2
TNoRefCountObject non-reference-counted IInterface implementationDelphi 11
TOrderedDictionary - a sorted generic dictionary classDelphi 12.2
TObject.Equals virtual methodDelphi 2009
TObject.GetHashCode virtual methodDelphi 2009
TObject.ToString virtual methodDelphi 2009
TObject.UnitName methodDelphi 2009
Touch supportDelphi 2010
TPair<TKey,TValue> recordDelphi 2009
TParallelArray - a class to enable running of some operations in parallel threadsDelphi 12.2
TProc<T1,...>, TFunc<T1,...> & TPredicate<T>Delphi 2010
TRegistry supports access flagsDelphi 6
TRegistry.OpenKeyReadOnly methodDelphi 4
TryStrToXXXX routines added to SysUtilsDelphi 6
TStream supports 64 bit size and seek offsetsDelphi 6
TStringList.Create(OwnsObjects: Boolean) constructor overloadDelphi 2009
Typed constants can no longer be assigned values by default. The {$J+} compiler directive must be used to restore previous behaviourDelphi 6
Types unitDelphi 6
U
UInt8 typeDelphi 2009
UInt16 typeDelphi 2009
UInt32 typeDelphi 2009
UInt64 typeDelphi 7
Unicode identifier namesDelphi 2005
Unicode source filesDelphi 2005
Unicode support (inc Windows API)Delphi 2009
UnicodeString typeDelphi 2009
Unit conversion handling (that's unit as in mm or inches, not unit as in source code unit)Delphi 6
Unit scope names [More info]Delphi XE2
UTF8 source filesDelphi 2005
UTF8Decode and UTF8Encode routinesDelphi 6
UTF8String typeDelphi 6
V
Variants unitDelphi 6
VCL stylesDelphi XE2
W
WebStencils - scriptable text-processing engineDelphi 12.2
WideString typeDelphi 3
Windows 7 & 8.1 stylesDelphi XE6
Windows 10 stylesDelphi 10
Windows Vista support (glass & themes)Delphi 2007
Windows XP themesDelphi 7
X
XML supportDelphi 5
XMLDoc documentationDelphi 2005
Z
Zip file support added with new TZipFile classDelphi XE2

Footnotes

CodeGear Delphi 2007
  1. All this information relates to the native Delphi compiler, not the .NET compiler.
  2. From Delphi XE5 the use of the {$IFEND} directive results in a compiler error unless a {$LEGACYIFEND} directive precedes the first {$IFEND} directive or unless the use of legacy {$IFEND} is enabled in project options.
  3. Source: EFG's Computer Lab (defunct website). This source also stated that the Math unit did not change from Delphi 4 to Delphi 5.


Embarcadero Delphi 10.4 does not support Windows 7. Delphi 10.3 still does.
RAD Studio 12 offers official support for iOS 17 (for Delphi only), Android 14, and macOS Sonoma. RAD Studio 12 also supports Ubuntu 22 LTS and Windows Server 2022.

Delphi Version Numbers

CodeGear Delphi 2007
This version numbers are required for compilation directives. I revised my own components package from Delphi 7 to install in Delphi 2007, 2009.
ProductProduct versionOther namesInternal versionPackage versionCompilerVersion constRTLVersion constDefined Symbol
Delphi 13 Florence37 3729037.037.0VER370
Delphi 12 Athens29BDS 233629036.036.0VER360
Delphi 11 Alexandria28BDS 223528035.035.0VER350
Delphi 10.4 Sydney27BDS 213427034.034.0VER340
Delphi 10.3 Rio26BDS 203326033.033.0VER330
Delphi 10.2 Tokyo25BDS 193225032.032.0VER320
Delphi 10.1 Berlin24BDS 183124031.031.0VER310
Delphi 10 Seattle23BDS 173023030.030.0VER300
Delphi XE822BDS 162922029.029.0VER290
Delphi XE721BDS 152821028.028.0VER280
Delphi XE620BDS 142720027.027.0VER270
Delphi XE519BDS 122619026.026.0VER260
Delphi XE418BDS 112518025.025.0VER250
Delphi XE317BDS 102417024.024.0VER240
Delphi XE2 Pulsar16BDS 923160 & 161 23.023.0VER230
Delphi XE Fulcrum15BDS 82215022.022.0VER220
Delphi 2010 Weaver14BDS 72114021.021.0VER210
Delphi 2009 Tiburon12BDS 62012020.020.0VER200
Delphi 2007 .NET11BDS 51911019.019.0VER190
Delphi 2007 Win3211BDS 518.511018.518.0VER180 & VER185
Delphi 2006 DeXter10BDS 41810018.018.0VER180
Delphi 2005 Diamondback9BDS 3179017.017.0VER170
Delphi 8 Octane (.NET only)8BDS 2168016.016.0VER160
C++ Builder 77?1570?15.0??VER150 & BCB
Delphi 77157015.015.0VER150
C++ Builder 66146014.0?VER140 & BCB
Delphi 66146014.014.0VER140
C++ Builder 5513N/aN/aN/aVER130 & BCB
Delphi 5513N/a13(*)N/aVER130
C++ Builder 4412.5N/aN/aN/aVER125 & BCB
Delphi 4412N/a12(*)N/aVER120
C++ Builder 3311N/aN/aN/aVER110 & BCB
Delphi 3310N/a10(*)N/aVER100
C++ Builder 1N/a9.3N/aN/aN/aVER93 & BCB
Delphi 229N/a9(*)N/aVER90
Delphi 118N/a8(*)N/aVER80
Borland Pascal 7.0N/aN/a707(*)N/aVER70
Turbo Pascal 6.0N/aN/a606(*)N/aVER60
Turbo Pascal 5.5N/aN/a555.5(*)N/aVER55
Turbo Pascal 5.0N/aN/a505(*)N/aVER50
Turbo Pascal 4.0N/aN/a404(*)N/aVER40
Turbo Pascal for Windows 1.5N/aN/a15N/aN/aVER15
Turbo Pascal for Windows 1.0N/aN/a10N/aN/aVER10

Use RtlVersion when the code depends on VCL or RTL features and CompilerVersion when it depends on compiler/language features.

(*) These versions did not have a CompilerVersion constant, it was introduced with Delphi 6.

Delphi XE2 packages are version 160 but five FireMonkey packages at XE2 Update 2 (fmi161.bplfmx161.bplfmxase161.bplfmxdae161.bpl and fmxobj161.bpl) are version 161.

Examples:

if CompilerVersion = 20 then sCompilerName := 'Delphi 2009'; in conditional compiler expressions:
{$if CompilerVersion > 18} // Delphi 2007 or later {$ifend}

Former Source: delphiDabbler.com. My reference is wider and better.