Installing Help in the IDE
Installing CHM help for the RTL, FCL and LCL in the Lazarus IDE
If you are using Lazarus from a package/installer
The installer or package may have already set up help for you. If this is not the case or if you have problems, please follow the instructions below.
Under Windows:
- For older versions: go to <your-lazarus-directory>\components\chmhelp\lhelp and see if lhelp.exe exists. Compile <your-lazarus-directory>\components\chmhelp\lhelp\lhelp.lpi if it doesn't. For newer versions: Lazarus will compile lhelp if needed the first time you press F1, but compiling the lpi yourself won't hurt.
- In Lazarus older than 0.9.30: make sure the package chmhelppkg is installed. See the menu Package->Install Packages. It should appear in the left column and is called something like ChmHelpPkg 0.2. Since 0.9.30, Windows installers include this package installed with paths set out of the box.
- Go to <your-lazarus-directory>\docs\chm and look for lcl.chm and fcl.chm. If they don't exist, go to http://sourceforge.net/projects/lazarus/files/Lazarus%20Documentation/, download and unpack the package with the CHM files into <your-lazarus-directory>\docs\chm\ (for old versions such as 0.9.30.4, download into <your-lazarus-directory>\docs\html\ instead).
- Additional troubleshooting step (useful if installing from Subversion, not using an installer): go to the Environment Options, tab "Help Options' and select the "CHM Help Viewer". Check its properties:
- "HelpExe" should be the lhelp you just built (i.e. <your-lazarus-directory>\components\chmhelp\lhelp\lhelp.exe)
- "HelpFilesPath" should be where you put the CHM files. Leave it empty to use the default, which includes $(LazarusDir)/docs/html (and $(LazarusDir)/docs/chm in newer versions).
Now context-sensitive help using F1 should work.
Installing INF help in the IDE
If you have help files in the INF format, please see "DocView IDE Integration" for details on how to install such help in the Lazarus IDE. This option will use the fpGUI DocView help viewer to display and search the INF help files.
Where to find INF help files?
This SourceForge page contains links to download ZIP archives of the FPC Language Reference, RTL, FCL, LCL and fpGUI help in the INF format.
Why choose INF help?
- INF help files are much smaller than other help formats, yet contain all of the same information. eg: LCL in HTML format is 187MB, LCL.CHM is 11.6MB, and LCL.INF is only 3.9MB. These sizes are all uncompressed sizes on your hard drive. So if you are limited to internet bandwidth, this is a good option to choose.
- fpGUI DocView in an optimised help viewer with many advanced features. For example:
- Loading help files (even multiple help files) are extremely fast
- You can do full text searches across all help files.
- Advanced search terms are possible.
- Search results are based on an advanced algorithm that takes alternative spelling in consideration, and uses a ranking system to give you the best possible results.
- Help files can be annotated (inline end-user comments can be added)
- Help topics can be bookmarked, so they can easily be found again.
- If you are visually impaired (or just prefer a specific font family), you can customise the fonts and font sizes to use when displaying help text.
Installing the Kylix Help in the Lazarus IDE
For users who have a legal copy of Kylix, it is possible to add Kylix 3 context-sensitive help files to Lazarus IDE running on Linux x86. The benefit from those help files is that they are very detailed, and also contains the Object Pascal Language Reference help - most of which is applicable to FPC's Object Pascal syntax or the Lazarus LCL. Note that this uses the proprietary HyperHelp program, so is not portable to other platforms.
The files needed from Kylix3
Since many of you have been coding in Kylix, you probably already have these files lying around some place. I suspect that the help system from the free version of Kylix may work as well. These are the files and directories needed from the ${HOME}/kylix/help directory:
bin/ k3clx.hlp k3dbd.cnt k3.hlp
foo k3.cnt k3dbd.fts k3indy.cnt
foo~ k3copts.cnt k3dbd.hlp k3indy.fts
hhintro.txt k3copts.fts k3dbx.cnt k3indy.hlp
hoh.cnt k3copts.hlp k3dbx.fts k3iota.cnt
hoh.fts k3crtl.cnt k3dbx.hlp k3iota.fts
hoh.hlp k3crtl.fts k3derrs.cnt k3iota.hlp
hyperhelp.sh* k3crtl.hlp k3derrs.fts k3new.cnt
k3.als k3ctools.cnt k3derrs.hlp k3new.fts
k3cerrs.cnt k3ctools.fts k3dlr.cnt k3new.hlp
k3cerrs.fts k3ctools.hlp k3dlr.fts k3prog.cnt
k3cerrs.hlp k3cw.cnt k3dlr.hlp k3prog.fts
k3clr.cnt k3cw.fts k3dopts.cnt k3prog.hlp
k3clr.fts k3cw.hlp k3dopts.fts lib/
k3clr.hlp k3dap.cnt k3dopts.hlp
k3clx.cnt k3dap.fts k3.ftg
k3clx.fts k3dap.hlp k3.fts
Most of the above files may not pertain to Lazarus, such as the k3c* files which relate to C++, but they are harmless to keep around.
The bare minimum files needed for the context help are these:
bin/ k3.als k3clx.fts k3.cnt k3.fts lib/
hyperhelp.sh* k3clx.cnt k3clx.hlp k3.ftg k3.hlp
The hyperhelp.sh script
We do need to dress up the default help script provided with Kylix so that it will work as a standalone app under X. Note that the last line of the script sets some missing rendering parameters. Also note the -geometry which positions the window and sets its size.
#!/bin/bash
HHHOME="${HOME}/Lazarus/DelphiHelp"
XPPATH="${HHHOME}/xprinter"
LANG=en_US
LC_ALL=en_US
locale=${LC_ALL:-${LC_CTYPE:-${LANG:-"C"}}}
LD_LIBRARY_PATH+="lib/locale/"${locale}":lib:"
XAPPLRESDIR="app-defaults"
NLSPATH="lib/locale/%L/%N.cat"
export XPPATH HHHOME LANG LC_ALL LD_LIBRARY_PATH XAPPLRESDIR NLSPATH
cd $HHHOME
bin/hyperhelp k3clx.hlp -m AL\($1,3,,main\)\
-s 0 -d 32159 -display :0.0 -geometry 600x500+100+100 -w
My directory tree
This is where I have placed the Kylix Help file directory. It is under my installation of Lazarus in the user home directory. The hyperhelp.sh script refers to these locations.
/home/tom/Lazarus/DelphiHelp/ |-- bin `-- lib `-- locale |-- de_DE |-- fr_FR |-- ja_JP.SJIS |-- ja_JP.eucJP `-- ja_JP.eucjp
Custom Tool setup in IDE
Finally, set up the new custom tool within Lazarus from the menu 'Tools|Configure custom tools|Add'. Replace '/home/tom/' with your user home directory path. This has to be an absolute path to the hyperhelp.sh script.
In summary
Just place your cursor in the edit window on the word you want to find help for and press Ctrl+F1. The Kylix help will then open up the context sensitive help page for that keyword.
fpdoc entries of RTL and FCL
The fpdoc entries for the FPC sources can be downloaded from svn:
cd /home/username/yourchoice/
svn co http://svn.freepascal.org/svn/fpcdocs/trunk fpcdocs
Add the path /home/username/yourchoice/fpcdocs to Tools / Options / Environment / FPDoc Editor
The source editor hints should now show help for TComponent.Name.