[Lazarus] Building help files: the nitty-gritty

Graeme Geldenhuys graemeg.lists at gmail.com
Wed Jul 18 19:53:24 CEST 2012


> I think Reinier and I are saying that the need in the current case is how to
> intercept F1 and recover an associated keyword, and how to pass that keyword
> to lhelp.

Surely the "capturing of the F1 key press" functionality already
exists in LCL? I also see TControl.HelpType, TControl.HelpContext,
TControl.HelpKeyword and Application.HelpFile properties... Are they
just for show (not functional yet)?

Another problem I spotted was with the Application.HelpCommand()
signature. It's got the signature designed by Borland Delphi v1
(somewhere around then) for the use with the very old WinHelp help
viewer and the long discontinued .HLP files. I've already raised this
issue some years back, but received my usual answer that it will not
be changed - go figure. Anyway, a more sane signature for
Application.HelpCommand() would be like Delphi & Kylix defined it for
the CLX framework. As a matter of fact, the help system for CLX was
designed to be cross-platform and uses Interfaces to be very flexible.
It is probably the cleanest help system design I have ever seen, and
it supports multiple help viewers too. Kylix even came with two
reference implementations - a Man Page viewer and a HyperHelp viewer.

For more interesting discussions on Lazarus help system ideas, see
this message thread from way back in May 2006...


May 2006 was a busy month for talk about help systems and help
formats. If the archives would be easier to view, it would help a lot.
I found some links though, but they don't all start at the beginning
of each message thread.


  - Graeme -

fpGUI - a cross-platform Free Pascal GUI toolkit

More information about the Lazarus mailing list