Jump to content
MaibornWolff

Unknown Delphi Version

Recommended Posts

We have been commissioned to analyse an existing Delphi software and make any necessary bug fixes. 

The software is supposedly written in Delphi 7, so I installed it at short notice and loaded the project.

Problem #1: The property "DoubleBuffered" is not found. As far as I remember, this did not exist in Delphi-7.

Problem #2: The following units are used, among others

 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, unit6, unit12,
  Vcl.Mask, Vcl.ExtCtrls, shellapi, unit0, unit_Sicherheit, archiv_unit, Unit_GobaleFunktionen,Unit_Internet_Konfi,
  ExtCtrls, StdCtrls, Mask, Buttons, Controls, Classes;

Questions:

1. which Delphi version should I at least install / purchase to read the above code?

2. how do I find out whether I need a normal or an Architect/Enterprise version?

Edited by MaibornWolff
Translate to english

Share this post


Link to post
  1. Dotted unit names were introduced with Delphi XE2, which was already a Unicode version, so the code probably will work fine with everything up to Delphi 12. If you want to find out which version was used the last time the project was saved, look at this page in the Delphi Wiki.
  2. No idea. I never used anything but the professional version since Delphi 6 (The company I worked for until Delphi 5 had the Enterprise version). If you have any Delphi version >=XE2 or the version you determined using the menthod mentioned in the Wiki, just try it. If not, one option would be to find somebody with Delphi 12 professional which you can trust and let him try to compile the source code. He can probably tell you whether it needs any units that are not part of the professional version but look like they are from Embarcadero.

Don't forget that there might be some 3rd party libraries being used.

Edited by dummzeuch

Share this post


Link to post

1. May I suggest to quickly edit the first question and translate the title to english 😉

2. The version in question is quite surely XE7 which for some people is also "just" 7.

Share this post


Link to post

May be there is a little trick to discover something:

 

- open a "dproj" file and search for a "<DCC_UsePackage>" section, inside that should be "Intraweb_xx_D10_3" for example, this means that its developed with Delphi 10.3. Look that and you'll find a version ...

 

- from Delphi XE7 you'll find "emsclientfiredac", inside the same section, if the version used is a Enterprise (or Architect) Version.

 

These informations are not official and not sure, but may be a starting point.

 

Share this post


Link to post

There is not really any reliable way to determine which version a delphi project belongs to - you can get close by looking at the ProjectVersion element in a dproj file

 

13 : XE2
14.0 - 14.3 : XE3
14.4 : XE3 Update 3, or XE4
15.0 - 15.3 : XE5

15.4+ : XE6

16  : XE7

17 : XE8

18.0 : 18.1 - 10.0

18.2 : 10.1

18.3 - 18.4 : 10.2

18.5-18.8 : 10.3

19.0 - 19.2 : 10.4

19.3+ : 11.0
20.0+ : 12.0

 

HTH 

Share this post


Link to post

Hi, thanks for the fast response. The last edit was around 2017, so I assume Delphi 10.x would be suitable. 

 

In the meantime I had a chance to look at the .csproj files. These files contain the productversion and that says, it's 18.2, hence Delphi 10.1

 

 

Edited by MaibornWolff

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×