How important is delphi 7 support?

Jun 23, 2007 at 7:30 PM
There had been several breaking changes in the project file format from Delphi 7 to Delphi 2005 and 2006. 2007 of course comes with MSBuild support which again means a breaking change.

In D7, all project options were stored in the DOF file. In 2005 and 2006, it is in the bdsproj file while D2007 introduces dproj. This causes a real issue when trying to come up with a solution that allows seamless loading in Delphi and VS.

I would assume that people who want to move to .net platform will be more interested in having VS compatibility. A typical example will be a migration project that reuses as much as delphi code compiled in Delphi.net and all new code written in another .Net language like Chrome or C#.

An ideal case will be to use the dproj (of Delphi 2007 and hopefully beyond) without much changes in VS so that we can achieve a one project solution for D2007 while keeping two project solution (dproj and bdsproj) for D2005 and D2006.

I am not fully aware of how Delphi 2007 IDE handles the project file, like whether it rewrites the dproj file without preserving manual edits.

Coordinator
Jun 25, 2007 at 3:34 AM
Can I assume that when you say breaking changes you mean for backward compatibility where a Delphi 2006 project can not be compiled in Delphi 7? I would like to know what you mean by "breaking change" just so I get a clear picture in my head. Doesn't Delphi 2005, 2006 and 2007 keep the old .DOF and .CFG up to date even though it uses a new project file? I'm not sure however I do believe all versions of DCC32 will compile a Delphi 7 project and since my code base is only in Delphi 7 and most people I know have abandoned Dephi from that point.

Hey, I though we talked about using the *.DPROJ file format in the last discussion. I concluded that it would be a bad idea to use .DPROJ and that we should use our own format.

Currently Delphi for Visual Studio only support the .DPR,.DOF,.CFG and the code changes the .DPR file if a unit is renamed, and will do so for adding and deleting units. All versions of DCC32 will compile this project format, however new options (if there are any) are not supported. I think we should do the same for .NET and have the .BDSPROJ be updated by our code when a user adds deletes or renames a unit. Thus all versions fo DCCIL will compile this format.

Delphi Win32 Project Hierarchy

  • project.dpr
    • project.dof
    • project.cfg
    • project.res

Delphi.NET 1.1 Project Hierarchy

  • project.dpr
    • project.bdsproj

I know, I know Delphi's BDSPROJ uses absolute paths, however our code would write relative paths into the file. Would DCCIL compile a pdsproj with relative paths? I don't know it would have to be tested.

Also later we should do the same thing for Delphi 2007 projects.

Delphi.NET 2.0 Project Hierarchy

  • project.dpr
    • project.dproj

Finally, Delphi 2007 IDE does rewrite the whole file and thus deletes manual edits, but this is of no concern to us as we will be building it for compiling and nothing more.