Delphi and 3rd party tools keep some of the settings in your %AppData% directory. Much more convenient than the registry as they are easier to read and modify when needed (also easier to damage <g>). We’ll start with an overview where various versions of Delphi store their configuration files, then show how the Favourites on the Welcome Page are stored, then end with an overview of BDS, Company Names and Product Names.
Configuration files
Depending on the Delphi version, the files are under one of these directories:
- %AppData%\%CompanyName%\BDS\#.0 %AppData%\%CompanyName%\RadStudio\#.0
- %AllUsersProfile%\Application Data\%CompanyName%\RadStudio\#.0
%AppData% is for user specific settings; %AllUsersProfile% for system global settings. BDS stands for Borland Developer Studio, the official name for the (then new) Gailileo IDE foundation that was the successor of the old IDE architecture used from Delphi until 7. In practice, I’ve never seen any file stored under the RadStudio directory within %AppData%.
Registry paths.
Note the registry key paths used for configuring Delphi are constructed in a way similar to the directory names:
- HKEY_CURRENT_USER\Software\%CompanyName%\BDS\#.0
- HKEY_LOCAL_MACHINE\Software\%CompanyName%\BDS\#.0
Note the registry only uses BDS, not RadStudio. Both %CompanyName% and # depend on the BDS versions. So further below are two lists: one mapping the BDS version to CompanyName, the other to Delphi version. But first about the files in the Delphi settings directory, so we can start looking at how favourites are stored.
BTW: Though not covered any further here, Delphi 2-7 had different registry roots as mentioned in a SO comment by Remy Lebeau:
HKEY_CURRENT_USER\Software\Borland\Delphi\#.0
HKEY_LOCAL_MACHINE\Software\Borland\Delphi\#.0
Delphi settings directory files
These are the files you usually have in the directory %AppData%\%CompanyName%\BDS\#.0:
- Not sure what this is, it seems always empty:
- BCompSettings.txt
- Desktop settings:
- Classic Undocked.dst
- Debug Layout.dst
- Default Layout.dst
- Windows environment as seen from your application, and from the (build) tools ran by Delphi:
- Path settings for the platform personalities used by MSBuild:
- Code formatter settings
- Object Repository:
- Together Modelling configuration
- Favourites
- Welcome page
- Various 3rd party configurations
- ModelMaker Code Explorer
- …
myFavorites.xml: the Favourites in your Welcome page
Back to the Favourites that you can organize in your Welcome page. These are stored in myFavorites.xml which has a remarkably simple XSD structure (both links are to Pastebin as WordPress regularly screws up XML). Normally the XML is on one line, but with an online tool like Free Online XML Formatter – FreeFormatter.com you can put everything into a human-readable form. Delphi can work with both. This allowed me to move my source directory tree from C:\Develop to another directory in a small search/replace manner.
CompanyName mapping
- CompanyName=Borland (from BDS 1 until BDS 5)
- CompanyName=CodeGear (from BDS 6 until BDS 7)
- CompanyName=Embarcadero (BDS 8 and up)
You see that CodeGear only lived for a short period of time. There is quite a bit confusion on the internet about this, just look at these searches to get a feel for that:
- “Borland\BDS\1.0″, “Borland\BDS\2.0″, “Borland\BDS\3.0″, “Borland\BDS\4.0″, “Borland\BDS\5.0″, “Borland\BDS\6.0″, “Borland\BDS\7.0″, “Borland\BDS\8.0″, “Borland\BDS\9.0″, “Borland\BDS\10.0″, “Borland\BDS\11.0″, “Borland\BDS\12.0″
- “CodeGear\BDS\1.0″, “CodeGear\BDS\2.0″, “CodeGear\BDS\3.0″, “CodeGear\BDS\4.0″, “CodeGear\BDS\5.0″, “CodeGear\BDS\6.0″, “CodeGear\BDS\7.0″, “CodeGear\BDS\8.0″, “CodeGear\BDS\9.0″, “CodeGear\BDS\10.0″, “CodeGear\BDS\11.0″, “CodeGear\BDS\12.0″
- “Embarcadero\BDS\1.0″, “Embarcadero\BDS\2.0″, “Embarcadero\BDS\3.0″, “Embarcadero\BDS\4.0″, “Embarcadero\BDS\5.0″, “Embarcadero\BDS\6.0″, “Embarcadero\BDS\7.0″, “Embarcadero\BDS\8.0″, “Embarcadero\BDS\9.0″, “Embarcadero\BDS\10.0″, “Embarcadero\BDS\11.0″, “Embarcadero\BDS\12.0″
BDS number to product version mapping
I’ve included the table below as the data is not in the table I referenced from Found a table with Delphi Conditional defines over the Delphi versions/compiler platforms/bitness.
The # depends on the BDS/Galileo version number which started with Borland Development Studio 1.0 a.k.a. C# Builder 1.0.
For each product version, I noted which products were added/removed compared to the previous one.
- C# Builder (contained only C# Builder)
- Delphi 8 (added Delphi .net)
- Delphi 2005 (added Delphi win32)
- Delphi 2006 (added C++ Builder)
- Delphi 2007
- Delphi 2009
- Delphi 2010
- Delphi XE
- Delphi XE2 (added Delphi win64)
- Delphi XE3 (added C++ Builder win64, OS X x86 and iOS x86/arm through FreePascal)
- Delphi XE4 (replaced FreePascal with native Delphi compiler for iOS x86/arm)
- Delphi XE5 (added Android ARMv7)
I verified most of these from either my own Delphi / C# Builder installations or from the uDelphiVersions unit in WMI Delphi Code Creator.
And at the time of writing, I’m guessing BDS 12, and wondering if BDS 13 will be skipped like Delphi 13, jokingly or not like mentioned in The Oracle at Delphi » What happened to version 13?.
–jeroen
Filed under: Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 8, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, History, Software Development