Automatic help creator for Delphi programs


Here you can find my program for automatic help generation for units and components in Delphi. The program is able to parse the source text of a unit and generate a help template in RTF format with a HPJ file containing the Microsoft Help Compiler project. The program was created as a semester project for the “Programming Languages” subject on The Computer Science Department of The Faculty of Electrical Engineering of The Czech Technical University in Prague.


The program is able to make a lexical and syntactical analysis of the interface part of Object Pascal units (from Delphi 5). During the process it parses source texts of all units which are referenced by the program (which is not an ideal behaviour, though). The output of the program consists of Help Project and an RTF file, which can be compiled to get a HLP file, looking exactly like the Delphi help (one page for each type, function, method, etc.). The documentation on each entry must then be entered manually.


In the archive, you will find the source text of the program, EXE file for the command-line version of the program and a bit of documentation (as most of the documentation is in czech, the only useful thing will probably be the formal specification of the Object Pascal language (BNF-like). (128,954B ZIP)

Missing and other features

Because the program was created as a semester project, there are many features that should be implemented but are not. Among the most important are:

Final notes

The original idea was to put the program into some “professional” state and publish it e.g. on SourceForge. But as the semester ended, I stopped working on the program. So that today, even I do not use the program much.

The HelpCreator is (of course) licensed under GPL, so if you want to enhance it, go forth. In that case, I would ask you to let me know about it (and show me the results of your work).

If you are looking for some similar, but “finished”, tool, I would recommend to try Doxygen. It has almost every feature from the preceding table. It was designed for C++ and Java, but you should be able to live with that, using the help from Pas2Dox.