How do I determine the Delphi version created project

Check Project File Extensions
For personal reference
If there is .dproj file, it's a Delphi version >= 2007.
If there is .bdsproj file, it's Delphi 2005 or 2006.
If there is .dof file, it's Delphi 5-7.
If there is not even a .dof file, no methods.
Delphi logo

.dproj file

if .dproj file exists in XML format containing a version entry \project\PropertyGroup\ProjectVersion
  • Delphi 2007: empty
  • Delphi 2009 and 2010: 12.0. no way do distinguish between Delphi 2009 and 2010
  • Delphi XE: 12.2
    • Update1: 12.3
  • Delphi XE2: 13.4
  • Delphi XE3: 14.3
    • Update 2: 14.4
  • Delphi XE4: 14.4 (the same as previous - Delphi XE3, Update 2, XE4 identified as an update to XE3.)
    • Update 1: 14.6
  • Delphi XE5: 15.1 or 15.3
  • Delphi XE6: 15.4
  • Delphi XE7: 16.0
    • Update 1: 16.1
  • Delphi XE8: 17.1 or 17.2
  • Delphi 10 Seattle: 18.0
    • Update 1: 18.1
  • Delphi 10.1 Berlin: 18.1 (the same as previous - Delphi 10 Seattle, Update 1)
    • Update 1: 18.2
  • Delphi 10.2 Tokyo: 18.2 (the same as previous - Delphi 10.1 Berlin, Update 1)
    • Update 2: 18.3
    • Update 3: 18.4
  • Delphi 10.3 Rio: 18.5
    • Update 1: 18.6
    • Update 2: 18.7
    • Update 3: 18.8
  • Delphi 10.4 Sydney: 19.0
    • Update 1: 19.1
    • Update 2: 19.2
  • Delphi 11.0 Alexandria: 19.3
    • Delphi 11.1 (Update 1 for Delphi 11): 19.4
  • Delphi 12.0 Athens: 20.1 (or maybe 20.0)
    • Delphi 12.2 (Update 2 for Delphi 12): 20.2
    • Delphi 12.3 (Update 3 for Delphi 13): 20.3
  • Delphi 13.0 Florence: 20.3 (the same as previous - Delphi 12.3, Update 3)

CodeGear Delphi 2007

.bdsproj file

As for Delphi 2005 and 2006 there is a .bdsproj file in XML format containing a version entry: \BorlandProject\PersonalityInfo\Option\Option
In Delphi 2005 it looks like this:
<Option Name="Version" Type="String">1.0</Option>
In Delphi 2006 like this:
<Option Name="Version">1.0</Option>

.dof file

There is a [FileVersion] section in .dof file in .ini format for each project up to Delphi 7 inclusively.
This section contains the following values:
Delphi 5: empty
Delphi 6: 6.0
Delphi 7: 7.0
If no version is given, the Packages entry in the [directories] section includes the Delphi version number multiplied by 10:
Delphi 5: Packages=...;Vcl50;...
Delphi 4: Packages=...;VCL40;...
Delphi 3: Packages=...;VCL30;...
Examples:
Delphi 3
[Directories] Packages=VCLX30;VCL30;INETDB30;INET30;
Delphi 5
[Directories] Packages=Vcl50;Inet50;Inetdb50;Vclx50;Indy50;
Similar to Delphi 2009 and 2010, Delphi 10 Seattle and Delphi 10.1 Berlin, the list of excluded packages might give a hint, if the names of these packages contain the version suffix.
Delphi 2009: 120
Delphi 2010: 140
Delphi 10 Seattle: 230
Delphi 10.1 Berlin: 240

Embarcadero Delphi Programming Basics. In Russian

Embarcadero Delphi Programming Basics. In Russian. Основы программирования в Embarcadero Delphi
Культин Никита Борисович, кандидат технических наук, доцент Санкт-Петербургского политехнического университета Петра Великого, читает лекции и ведет практические занятия по дисциплинам: Управление инновационными проектами, Экономика и финансовое обеспечение инновационной деятельности, Управление программными проектами; один из разработчиков федерального государственного образовательного стандарта высшего образования по направлению «Инноватика», преподаватель Президентской программы подготовки управленческих кадров для предприятий народного хозяйства РФ, автор более 50 научных работ и учебно-методических пособий.
    Из замеченных ляпов:
  1. стр.45. Build with runtime packages, а в настройках Link with runtime packages
  2. стр.123. p := StrUtils.PosEx должно быть p := PosEx
  3. стр.213. DataEdi1 := System.SysUtils.Date; должно быть DateEdit1.Date := System.SysUtils.Date;
  4. стр.217. Longetude должно быть Longitude
Принимая во внимание качество информации в издании и количество его книг на BHV - Автор: Культин Никита Борисович, это - не графомания, а инфоцыганщина какая-то