Overview
ActionChain is a tool designed to help you automizing tasks. The initial focus of it was and still is in application development, but including generic usage actions as well.
The current list of supported actions includes 259 different actions in various categories.
Customization
Standard actions never suffice when it comes to huge projects, so it’s important that a build chain can be extended by the user beyond the scope of the included actions.
Command line parameters
Wherever we support external tools, we made sure to map all documented command line parameters to GUI elements, so that you can comfortably set up actions without having to read up the command line help of these tools (which, by the way, is displayed on an additional Help page so that you would not have to open a command processor to do just that).
Scripts
Each action can be enhanced using scripts, written in PascalScript (Windows Scripting Host languages are currently being added) with access to parameters and variables.
Plugins
By using XML files, you can extend ActionChain with custom actions written in the supported script languages, or by defining command line parameters for external helper applications.
Features
Delphi-related
Versioning
ActionChain aims at supporting many version control systems so that you have real control over the exact revision you are building.
Compiling
Various compilers
ActionChain supports the Delphi command line compiler as well as FreePascal, plus MSBuild for Delphi project files, giving you a wide range of options to get your final binaries.
Adjust the PE Header of executables and libraries
Fix empty section addresses
The Vista SDK introduces a SignTool version that supports page hashes. This option requires optimized PE headers, where the physical section address has to be zero wherever the physical section size is zero.
This conforms with Microsofts description of the PE format:
When a section contains only uninitialized data, this field [PointerToRawData] should be zero.
Delphi linkers including Delphi XE write incorrect headers that need to be patched using this option before codesigning.
Dynamic base
This allows the file to be relocated at runtime, offering more security against memory address based attacks on software.
Force integrity
Enforces code integrity checks.
Update Delphi project files
If you develop software that consists of multiple Delphi projects, or even with a single one tend to change build settings, or even stumble across tools like madExcept automatically changing build settings, you need to update these.
Adjust version settings
It’s useful to have the major and minor version numbers stored within your global build script, which can then update each project accordingly. ActionChain allows you to update version information, copyright, trademarks and product name all from the build chaun
Adjust build configurations
If you tend to change the existing build configurations for testing purposes, or have software like madExcept which does it even without you noticing it, it’s important for a stable release to have reproducable settings. ActionChain allows you to update paths as well as various compiler and linker options.
Update resource files
Neutralize or update resource locales
If you want to make your Delphi application localizable using MUI, you need a neutral or just one fixed language code on all resources of a file. But many third party components do link resources into your executable that have the locale of their developers, cerating mixed resources that the MUI tools won’t accept. You can use this to neutralize the languague code, or fix it to your main language code.
Code-signing
Once you’ve applied all changes to the final PE file, you should code-sign it, so customers can verify that exact file is originating from you.
- Parameters in Action Editor
- Scripts in Action Editor
- Main script view



