[Lazarus] Building help files: the nitty-gritty

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Mon Jul 16 16:41:12 CEST 2012


Mattias Gaertner wrote:

>>> RTL etc. keywords only work if Lazarus is started from the .chm 
>>> directory. LCL always OK.
>> Should I Mantis this to make sure it's not overlooked?
> 
> Help on "begin" works fine under Linux.

Well it doesn't work reliably here. Debian x86 Linux, ablutions-standard 
system.

> Can it find ref.chm? (See debug log)
> If not, what search paths do you see?

My test code fragment (with line numbers):

42 {$R *.res}
43
44 begin
45   Application.Initialize;

Hitting F1 on 'Application' console shows:

TIDEHelpManager.ShowHelpForSourcePosition A 
Filename=/usr/local/src/heavywethers/trunk/HeavyWethers.lpr  x=6,y=45
TIDEHelpManager.ShowHelpForSourcePosition B Success 1
TIDEHelpManager.ShowHelpForSourcePosition C 
/usr/local/share/lazarus-trunk/lcl/forms.pp X=3 Y=1706
TIDEHelpManager.ShowHelpForSourcePosition D PascalHelpContextLists.Count=1
THelpDatabase.GetNodesForPascalContexts C 
FileItem.ClassName=THelpDBISourceDirectory 
Filename=/usr/local/share/lazarus-trunk/lcl/forms.pp 1
TFPDocHTMLHelpDatabase.ShowHelp A Unitname=forms NewNode.HelpType=1 
NewNode.Title=LCL - Lazarus Component Library Units 
NewNode.URL=file://index.html
TFPDocHTMLHelpDatabase.ShowHelp Filename="application." UnitName="forms"
TFPDocHTMLHelpDatabase.ShowHelp BaseURL of Node.URL=""
TFPDocHTMLHelpDatabase.ShowHelp GetEffectiveBaseURL="lcl.chm://"
THTMLHelpDatabase.ShowURL B URL=lcl.chm://forms/application.html 
URLType=lcl.chm URLPath=forms/application.html URLParams=
TChmHelpViewer.ShowNode Filename="lcl.chm" 
SearchPath="/usr/local/share/lazarus-trunk/docs/html/lcl" 
Found="/usr/local/share/lazarus-trunk/docs/html/lcl/lcl.chm"
Xlib:  extension "RANDR" missing on display "localhost:10.0".

Without killing lhelp, moving up to 'begin' and hitting F1:

TIDEHelpManager.ShowHelpForSourcePosition A 
Filename=/usr/local/src/heavywethers/trunk/HeavyWethers.lpr  x=3,y=44

The left pane on lhelp is only showing the lcl entries.

Killing Lazarus and starting in /usr/local/share/lazarus-trunk/docs/chm 
which contains

-rw-r--r-- 1 markMLl markMLl 19177753 Jul 14 12:45 doc-chm.zip
-rw-rw-r-- 1 root    root     1645513 Dec 28  2011 fcl.chm
-rw-rw-r-- 1 root    root      129232 Dec 28  2011 fcl.xct
-rw-rw-r-- 1 root    root      100171 Dec 28  2011 fpdoc.chm
-rw-rw-r-- 1 root    root      678206 Dec 29  2011 lazutils.chm
-rw-rw-r-- 1 root    root      100665 Dec 29  2011 lazutils.xct
-rw-rw-r-- 1 root    root    12740179 Dec 29  2011 lcl.chm
-rw-rw-r-- 1 root    root     1275258 Dec 29  2011 lcl.xct
-rw-rw-r-- 1 root    root      385677 Dec 28  2011 prog.chm
-rw-rw-r-- 1 root    root        3854 Dec 29  2011 readmechm.txt
-rw-rw-r-- 1 root    root      617137 Dec 28  2011 ref.chm
-rw-rw-r-- 1 root    root        5501 Dec 28  2011 ref.kwd
-rw-rw-r-- 1 root    root     3121967 Dec 28  2011 rtl.chm
-rw-rw-r-- 1 root    root      344321 Dec 28  2011 rtl.xct
-rw-rw-r-- 1 root    root        6907 Dec 28  2011 toc.chm
-rw-rw-r-- 1 root    root      631049 Dec 28  2011 user.chm

On 'Application':

TIDEHelpManager.ShowHelpForSourcePosition A 
Filename=/usr/local/src/heavywethers/trunk/HeavyWethers.lpr  x=9,y=45
TIDEHelpManager.ShowHelpForSourcePosition B Success 1
TIDEHelpManager.ShowHelpForSourcePosition C 
/usr/local/share/lazarus-trunk/lcl/forms.pp X=3 Y=1706
TIDEHelpManager.ShowHelpForSourcePosition D PascalHelpContextLists.Count=1
THelpDatabase.GetNodesForPascalContexts C 
FileItem.ClassName=THelpDBISourceDirectory 
Filename=/usr/local/share/lazarus-trunk/lcl/forms.pp 1
TFPDocHTMLHelpDatabase.ShowHelp A Unitname=forms NewNode.HelpType=1 
NewNode.Title=LCL - Lazarus Component Library Units 
NewNode.URL=file://index.html
TFPDocHTMLHelpDatabase.ShowHelp Filename="application." UnitName="forms"
TFPDocHTMLHelpDatabase.ShowHelp BaseURL of Node.URL=""
TFPDocHTMLHelpDatabase.ShowHelp GetEffectiveBaseURL="lcl.chm://"
THTMLHelpDatabase.ShowURL B URL=lcl.chm://forms/application.html 
URLType=lcl.chm URLPath=forms/application.html URLParams=
TChmHelpViewer.ShowNode Filename="lcl.chm" 
SearchPath="/usr/local/share/lazarus-trunk/docs/html/lcl" 
Found="/usr/local/share/lazarus-trunk/docs/chm/lcl.chm"
Xlib:  extension "RANDR" missing on display "localhost:10.0".

Moving up to 'begin' and hitting F1, lhelp gains a reference guide 
section and displays appropriate info, debug shows:

TIDEHelpManager.ShowHelpForSourcePosition A 
Filename=/usr/local/src/heavywethers/trunk/HeavyWethers.lpr  x=3,y=44
TChmHelpViewer.ShowNode Filename="ref.chm" 
SearchPath="/usr/local/share/lazarus-trunk/docs/html/lcl" 
Found="/usr/local/share/lazarus-trunk/docs/chm/ref.chm"

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list