====== Borland Compiler Conditional Defines ======
^ Product Name ^ Version ^ Conditional Define ^ COMPILER\\ VERSION ^ RTL\\ VERSION ^
| [[delphixe2|Embarcadero Delphi XE2]] | 16.0 | VER230 | 23.0 | 23.0 |
| [[delphixe2|Embarcadero C++Builder XE2]] | 16.0 | VER230 | 23.0 | 23.0 |
| [[delphixe|Embarcadero Delphi XE]] | 15.0 | VER220 | 22.0 | 22.0 |
| [[delphixe|Embarcadero C++Builder XE]] | 15.0 | VER220 | 22.0 | 22.0 |
| [[delphiprism2010|Embarcadero Delphi Prism 2010]] | 3.0 | PRISM and VER30 (9) todo | - | - |
| [[delphi2010|Embarcadero Delphi 2010]] | 14.0 | VER210 | 21.0 | 21.0 |
| [[delphi2010|Embarcadero C++Builder 2010]] | 14.0 | VER210 | 21.0 | 21.0 |
| [[delphiprism|CodeGear Delphi Prism]] | 3.0 | PRISM and VER30 (9) | - | - |
| [[delphi2009|CodeGear Delphi 2009]] | 12.0 | VER200 | 20.0 | 20.0 |
| [[delphi2009|CodeGear C++Builder 2009]] | 12.0 | VER200 | 20.0 | 20.0 |
| [[delphi2007|CodeGear Delphi 2007 for .NET]] | 11.0 | VER190 | ? | ? |
| [[delphi2007|CodeGear Delphi 2007 for Win32]] | 11.0 | VER180 and VER185 (6) | 18.5 | 18.0 |
| [[delphi2006|Borland Developer Studio 2006]] | 10.0 | VER180 | 18.0 | 18.0 |
| [[delphi2005|Borland Delphi 2005]] | 9.0 | VER170 | 17.0 | 17.0 |
| [[delphi8|Borland Delphi 8 for .NET]] | 8.0 | VER160 (1) | 16.0 | 16.0 |
| Borland C++Builder X | 1.0 | -none- (8) | ? | ? |
| Borland C# Builder | 1.0 | VER160 (1) | ? | ? |
| [[delphi7|Borland Delphi 7]] | 7.0 | VER150 | 15.0 | 15.0 |
| [[kylix3|Borland Kylix 3]] | 3.0 | VER140 (2) | ? | ? |
| Borland C++Builder 6 | 6.0 | VER140 (2) | ? | ? |
| [[kylix2|Borland Kylix 2]] | 2.0 | VER140 (2) | ? | ? |
| [[delphi6|Borland Delphi 6]] | 6.0 | VER140 (2) | 14.01 | 14.31 |
| [[kylix1|Borland Kylix]] | 1.0 | VER140 (2) | ? | ? |
| Borland C++Builder 5 | 5.0 | VER130 (3) | - | - |
| [[delphi5|Borland Delphi 5]] | 5.0 | VER130 (3) | - | - |
| Borland C++Builder 4 | 4.0 | VER125 | - | - |
| [[delphi4|Borland Delphi 4]] | 4.0 | VER120 | - | - |
| Borland C++Builder 3 | 3.0 | VER110 (4) | - | - |
| [[delphi3|Borland Delphi 3]] | 3.0 | VER100 | - | - |
| Borland C++ 5 | 5.0 | ? | - | - |
| Borland C++Builder 1 | 1.0 | VER93 | - | - |
| [[delphi2|Borland Delphi 2]] | 2.0 | VER90 | - | - |
| Borland C++ 4.5 | 4.5 | ? | - | - |
| [[delphi1|Borland Delphi]] | 1.0 | VER80 | - | - |
| Borland C++ 4 | 4.0 | ? | - | - |
| [[bp70|Borland Pascal 7]] | 7.0 | VER70 | - | - |
| Borland C++ 3.1 | 3.1 | ? | - | - |
| [[tpw15|Turbo Pascal for Windows 1.5]] | 1.5 | VER15 (7) | - | - |
| Turbo C++ for DOS 3 | 3.0 | ? | - | - |
| Borland C++ 3 | 3.0 | ? | - | - |
| Turbo C++ for Windows 3 (Win16) | 3.0 | ? | - | - |
| [[tpw10|Turbo Pascal for Windows 1.0]] | 1.0 | VER10 (7) | - | - |
| Borland C++ 2 | 2.0 | ? | - | - |
| [[tp60|Turbo Pascal 6]] | 6.0 | VER60 | - | - |
| Turbo C++ for DOS | 1.0 | ? | - | - |
| Turbo C for DOS 2 | 2.0 | ? | - | - |
| [[tp55|Turbo Pascal 5.5]] | 5.5 | VER55 | - | - |
| Turbo C for DOS 1.5 | 1.5 | ? | - | - |
| [[tp50|Turbo Pascal 5]] | 5.0 | VER50 | - | - |
| [[tp40|Turbo Pascal 4]] | 4.0 | VER40 | - | - |
| Turbo C for DOS | 1.0 | ? | - | - |
| [[tp30|Turbo Pascal 3]] | 3.0 | VER30 | - | - |
| [[tp20|Turbo Pascal 2]] | 2.0 | -none- (5) | - | - |
| [[tp10|Turbo Pascal 1]] | 1.0 | -none- (5) | - | - |
- This conditional define is shared by the Delphi compilers used to build C#Builder 1 and [[delphi8|Delphi 8]], which do not natively support Delphi for Win32. This define is used in the "IDE Integration Packs" that were released to Borland partners in order to allow IDE plugins like [[http://www.modelmakertools.com/code-explorer/index.html|ModelMaker Code Explorer]] and [[http://www.delphi-expert.com/castalia3|Castalia]] to be compiled.
- This conditional define is shared between [[cppbuilder6|C++Builder 6]], [[delphi6|Delphi 6]], [[kylix1|Kylix 1]], [[kylix2|Kilyx 2]], and [[kylix3|Kylix 3]] (Checking for the conditional define "LINUX" helps to determine whether the compiler is Kylix or Delphi and "BCB" can be used to determine if C++Builder is being used).
- This conditional define is shared with [[cppbuilder5|C++Builder 5]]
- [[cppbuilder3|C++Builder 3.0]] used VER110 (it had its own version of the Delphi compiler included).
- They are not defined in [[tp10|Turbo Pascal 1]] & [[tp20|2]].
- [[delphi2007|Delphi 2007]] is a non-breaking release of the compiler and VCL use VER180 But since there are differences, especially with VCL having to do with Vista, you can target [[delphi2007|Delphi 2007]] specifically with VER185.
- [[http://delphi.wikia.com/wiki/Borland_Compiler_Conditional_Defines|delphi.wikia.com]] states it is VER70. This is not correct. I also tested [[tpw10|Turbo Pascal for Windows 1.0]] with the original Demo Disk.
- As far as i know there is no VERxx Constant in this build.
- Delphi Prism uses VER30 because the compiler is Remobjects Oxygene. Also [[tp30|Turbo Pascal 3]] uses VER30, but it the Prism language has much changed since Turbo Pascal.
====== Links ======
* [[http://delphi.wikia.com/wiki/Borland_Compiler_Conditional_Defines|Source for most values]]
* [[http://www.delphipraxis.net/topic49340.html|Discussion on German Delphi Forum]]
* [[http://www.delphi-fundgrube.de/faq05.htm|Delphi Compiler Schalter]]
* [[http://www.adug.org.au/reference/VersionSymbols.htm|Delphi Version Symbols]]
* [[http://www.freepascal.org/docs-html/prog/progap7.html|Free Pascal Compiler defines during compilation]]