[Lazarus] Building help files: the nitty-gritty

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

Mattias Gaertner wrote:
> On Mon, 16 Jul 2012 14:41:12 +0000
> Mark Morgan Lloyd <markMLl.lazarus at telemetry.co.uk> wrote:
>> Mattias Gaertner wrote:
>> [...]
>> 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"
> It searched lcl identifier "Application.Initialize" and found lcl.chm.
> Good.
>> [...]
>> 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"
> It searched keyword "begin" and found ref.chm. Good.
> What do you expect?

THAT IT WORKS!!! You've skipped the bit where after hitting F1 on 
"Application" (which worked) I moved the cursor up one line and hit it 
on "begin" which didn't, because during the first run I'd started from ~ 
rather than from the directory that contained the files I've listed.

OK, maybe I've been ambiguous. Go back to my earlier posting and read 
the middle bit like

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

So the question boils down to: where do I give a path to either the IDE 
or to lhelp, so it knows where to find ref.chm etc.?

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