In Delphi the forms visual designs are encoded as dfm files and directly included into the executables as resources. This implementation has two disadvantages:
- ?They are fully exposed to the public.
- ?The format is very suitable at design-time, but too bloated at runtime.
We have designed a tool that fixes both problems and it will only take you 1 minute to implement. All you have to do is:
- add one component
- add one line of code to your project
- launch the Citadel Wizard
Compression: The benefits from getting a smaller executable are obvious. There are some products that compress executables. They get a very good compression ratio but need more memory to work, as the full executable must be loaded at startup and code memory is not shared between instances. Citadel just compresses the dfm resources and they are loaded on demand as usual, so it doesn't suffer these problems.
Encryption: Why would you want to encrypt your dfms? Anyone having access to your executable can extract their full dfms by using a resource editor. They even can modify them. If all they do is change the colors and control positions and sizes that's not bad, but what about if they change your copyright and logos to include their own? They could then redistribute your applications under a different brand name. Another benefit is that your competitors won't be able to see your forms' internal design.
DFM pack format(disabled for Delphi 2009 and above): We have designed an alternative format derived from Delphi's own binary format. This format eliminates all superfluous information (this information may be important at design-time but not at runtime). The result is a much more compact format (this size reduction is minimized if you also use the compress option, as the compression ratio is not as good as for Delphi's native format, but sometimes it is still remarkable). Another very important feature of this format is that it can only be decoded from inside the executing program, as it needs information only available through RTTI. This means that if you combine it with the encryption option your DFMs will get a really exceptional protection.
Remove relocations: This information is useless for EXEs and increases their size. This setting is unavailable for DLLs as they can get relocated.
Citadel is distributed in four versions: Trial, Compress, Crypt and Pro. The differences are detailed below.