Why sometimes you *want* to to have your DFM files stored as binary
Posted by jpluimers on 2016/08/25
Delphi Component/Tool vendors have to support a truckload of Delphi and C++ Builder versions which can be a pain: they have to work around problems in Delphi and C++ Builder versions that have long been abandoned by Borland/CodeGear/Embarcadero/Idera/…
This means that sometimes the Delphi Component/Tool vendors have to work around stuff in a way normal applications vendors would never do.
Recently I learned that sometimes this can be a painful thing: keeping DFM files in binary state.
I’m not kidding about either the DFM file format nor about supporting old versions:
- Delphi has supported text based DFM files since like Delphi 2 for most of the features (yes, ‘most’ is the crucial word here) and by default stored DFM files in text format since Delphi 5.
- For the Component/Tool Vendors, even Delphi 7 makes money though usually less than Delphi 2007 or the C++ Builder side of things.
The ‘most’ applies to this nice ARM compiler bug in Delphi 19.0.13856.4978 (for mere mortals, that’s Update 1 for RAD Studio XE5, Delphi XE5 and C++Builder XE5; I wish vendors would list those numbers/products in a central place):
- [Android] MsBuild (dccAarm) error when compile FireMonkeyMobile projects with fmx forms
- Project: Delphi
- Build #: 19.0.13856.4978
That’s why TeeChart still has most DFM files stored as binary files (again the ‘most’ word).
For version control and searching this is a pain, so normal application developers (the ones not using Delphi XE5 Update 1 for Android work) should run convert.exe with the -t (target=text) switch on DFM binary files.
Oh: this is fixed in version 19.0.13856.4978 (yes, that’s XE5 Update 2).
- Borland Delphi 6 Developer’s Guide – Steve Teixeira, Xavier Pacheco – Google Books
- DFM Converter, convert.exe – Delphi in a Nutshell [Book]
- Quality Central bug 121004: [Android] MsBuild (dccAarm) error when compile FireMonkeyMobile projects with fmx forms
- Update 1 for RAD Studio XE5, Delphi XE5 and C++Builder XE5
- Update 2 for RAD Studio XE5, Delphi XE5 and C++Builder XE5
- Delphi XE5 Update 2 got released last week, end-of-year Delphi XE5 offer, #CodingInDelphi book « The Wiert Corner – irregular stream of stuff