[Lazarus] installing chm help

Sven Barth pascaldragon at googlemail.com
Thu Feb 16 16:48:54 CET 2012


Am 16.02.2012 16:23, schrieb waldo kitty:
> On 2/16/2012 06:49, Mattias Gaertner wrote:
>> On Thu, 16 Feb 2012 12:30:44 +0100
>> Michael Schnell<mschnell at lumino.de> wrote:
>>
>>> On 02/15/2012 06:38 PM, Andrew Haines wrote:
>>>> When you press F1 in lazarus it performs it's own search of what it is
>>>> looking for. If it finds something it presents a list of possible
>>>> results if there are more than one.
>>> Where does Lazarus (I suppose you mean the IDE ) search ?
>>
>> It asks the registered help databases. See View / IDE internals /
>> About IDE / help.
>
> "registered help databases"?? /when/ do they get registered?

The IDE is registering these internally.

> so it is lazarus that is performing these digs into the chm files and
> isn't locating these items that should already be documented in these
> local documentation files (eg: write and writeln)... i guess now one
> needs to figure out why... it could be one of two things, as far as i
> can see...
>
> 1. the information simply is not in the chm (not good)
>
> 2. there is a coding or logic error leading to the miss
>

3. The IDE can not correctly establish the context for Writeln, because 
it is not physically present in the source (the unit System).

> TBH, i'm still reading back over your words and am still rather surprised that lazarus is doing this work instead of the help viewer... i would have thought that it would have been the help viewer doing the work after lazarus told the help viewer what to search for... this also explains why i cannot "back up" to choose another db entry but have to exit the help viewer and perform the F1 hit again...

Lazarus is doing this, because in theory (currently not possible*) you 
could have the following setup:

* for LCL help use the online documentation
* for RTL help use LHelp (CHM based)
* for FCL help use DocView (INF based)

All three help systems are registered to the IDE and for each you have 
added the corresponding files (e.g. rtl.chm and fcl.inf). Then the IDE 
will ask each help system whether it can provide help and in our example 
LHelp will answer with "Yes" for all identifiers that belong to rtl.chm.

I know this example is rather artificial, but that is the purpose of 
this help system.

Note: A more practical use case might be to add third party 
documentation that e.g is only available in CHM format, but for RTL, FCL 
and LCL documentation you normally use DocView...

* This is because of at least two reasons:
- the CHM package overrides all databases to itself
- DocView does not yet have an integration package

Regards,
Sven




More information about the Lazarus mailing list