DfmExtractor is a small command line utility which allows you to extract DFM, LFM and FRM forms from executable files compiled by Delphi, Lazarus and CodeTyphon.
Download
Description
A small command line utility which allows you to extract DFM, LFM and FRM forms from executable files compiled by Delphi, Lazarus and CodeTyphon.
This program was made for my private use, but it may also be useful to someone.
When translating one program written in Delphi, I needed DFM forms to make it easier to work with the Poedit program, so I decided to write a small program to extract DFMs.
Usage
DfmExtractor version 1.1 [Win 32-bit] (2018.02.28)
Usage: DfmExtractor.exe -i=FILE [-n=NAME] [-idx=X] [-o=FILE] [-e=EXT] [-p=STR] [-a] [-d=DIR] [-l] [-h] [-V] [--home]
Mandatory arguments to long options are mandatory for short options too.
Options are case-sensitive. Options in square brackets are optional.
Input/output options
Switch | Description |
---|---|
-i, –input-file=FILE | An executable file containing Delphi, Lazarus or CodeTyphon forms (DFM, LFM, FRM). |
-n, –form-name=NAME | Form name or form class name to extract. |
-idx, –form-index=X | The index of the form to extract. Non-negative integer. |
-o, –output-file=FILE | The output file with extracted form. |
-e, –extension=EXT | The default extension of the output file(s). If not specified, DFM will be used. |
-p, –prefix=STR | Output file(s) name prefix (for the -a option). |
-a, –save-all | Saves all forms from the specified executable file to the given (or current) directory. |
-d, –output-dir=DIR | Output directory (for the -a option). |
-l, –list | Displays a list of all forms in the given input file. |
Information
Switch | Description |
---|---|
-h, –help | Show this help. |
-V, –version | Show application version. |
–home | Opens program homepage in the default browser. |
Examples
Example 1.
List all forms in the file AudioExtractor64.exe:
DfmExtractor.exe -i AudioExtractor64.exe -l
Result:
Forms: 10 Index | Lines | Form name | Form class ------------------------------------------------------- 0 | 451 | CustomizeFrm | TCustomizeFrm 1 | 343 | FormAbout | TFormAbout 2 | 49 | FormCmdLine | TFormCmdLine 3 | 345 | FormErrors | TFormErrors 4 | 1 621 | FormFileInfo | TFormFileInfo 5 | 474 | FormListFileEdit | TFormListFileEdit 6 | 6 035 | FormMain | TFormMain 7 | 790 | FormOptions | TFormOptions 8 | 422 | FormProgress | TFormProgress 9 | 169 | FormToolsInfo | TFormToolsInfo
Example 2.
Save all forms from the AudioExtractor64.exe file to files with the LFM extension:
DfmExtractor.exe -i AudioExtractor64.exe -a -e lfm
Result:
File saved: CustomizeFrm.lfm File saved: FormAbout.lfm File saved: FormCmdLine.lfm File saved: FormErrors.lfm File saved: FormFileInfo.lfm File saved: FormListFileEdit.lfm File saved: FormMain.lfm File saved: FormOptions.lfm File saved: FormProgress.lfm File saved: FormToolsInfo.lfm
Example 3.
Save form FormMain
from the AudioExtractor64.exe file to main form.dfm
file:
DfmExtractor.exe -i AudioExtractor64.exe -n FormMain -o "main form.dfm"
Result:
The form with name/class "FormMain" has been saved to file: main form.dfm
Example 4.
Save form with index 4
from the AudioExtractor64.exe file to a DFM file:
DfmExtractor.exe -i AudioExtractor64.exe -idx 4
Result:
The form with index 4 has been saved to file: FormFileInfo.dfm
How to uninstall?
End User License Agreement
Changelog
Version 1.1 (2018.02.28)
- Project ported from Delphi to Lazarus/CodeTyphon.
- The size of the executable file has been reduced twice.
- Internal enhancements.
Version 1.0 (2018.01.11)
Initial release.