[Lazarus] Help System with Chromium Embedded component

Lars noreply at z505.com
Fri Oct 21 09:04:30 CEST 2016

Hi, I have been experimenting with chromium embedded and the power is
endless.  It's like being able to write CGI programs but on the desktop
with no server needing to be installed.

I was thinking documentation for software could benefit from having a
chromium embedded (or firefox embedded) system.

The issue with static plain html documents is that they aren't really
powerful like a full fledged .CHM system or .hlp system. But even chm and
.hlp files are primitive, they are just basic, and 1990's technology.

With chromium embedded it seems you can literally do anything you want:
combine lazarus widgets with a web server like program, but without
requiring a web server. I.e. you can output to the web browser just like a
cgi program can, but no server side needed, it's all done on the client.

To me this seems like the perfect help system tool as you'll get something
far more powerful than a PDF file... you can highlight text using lazarus
code and callback back to the browser, whereas PDF files are not so
programmable and controllable with code. I don't even know if pdf is

The biggest issue with help documents is they are usually either static
PDF files that are not in any way searchable like an online documentation
on a web server.... or they are static html files without any power added
to them, or they are chm files which are simple but not so powerful.

It seems there is almost a mismatch where people want a PDF file but also
want to use google for help. This leads to the help files not really being
integrated into the app and people just end up using google to find help
on their program. The way I see it is if there was a chromium embedded or
firefox embedded help system you wouldn't need google as much, as you
would have the documents on your client like in the old days with Delphi 5
and 6 when you just pressed F1 and it took you to the page. F1 local
client help just like delphi could in fact be automated with chromium
embedded the same way delphi had it with the old documentation system from
the 1990's... but with chromium embedded, you get rich html help
documents, not old html document style from 1990's..

As much as I love CHM/HLP file systems from Ms Winblows it seems that one
could even develop a more powerful one with chromium embedded and
callbacks back and forth to the component....

Now I haven't much looked into the current Lazarus help system or what
people use for help systems in popular lazarus apps, but I'm posting this
to the mailing list as an idea for anyone who wants to make a rich help
system with a rich integrated help system.

The issue with opening an html file in a browser for help, is that the
person has to leave their application and then alt tab back to it, whereas
a chromium embedded help system could be put right into the software
itself not a separate browser application.  And the issue with chm files
as I see it, is they are a simple format from the 1990's with limitations
(As much as I respect simple formats from long ago.. some help systems
need to be richer)

PDF files are indeed very rich documents but they lack programmability.
For example F1 online (or rather offline local client) help like in Delphi
5 seems not possible, even though delphi 5 help is 1990's technology and
pdf files are modern.

There seems to be a mismatch here where you have fragmented help systems
on modern software, and people end up basically abandoning help systems
and instead just go on google and search. Maybe the old delphi 5 style F1
help system could be brought back, but with a modern flare: chromium html
pages, with javascript possible too if absolutely necessary, to make them
richer. But the cool thing about chromium embedded is you can avoid
javascript by using fpc/lazarus code as callbacks instead of relying just
on clunky javascript.. i.e. you can mix modern pascal code in with HTML to
render, search, display, etc.

So I'm not talking about just a help system for lazarus (the current one
may be just fine) but a help system architecture for all software apps
released in the future! Apps developed with lazarus, not just lazarus
itself.. and apps developed with delphi and other tools.

More information about the Lazarus mailing list