Hello,

We had some talks about file formats for the help system, but I´m
still uncertain how the framework will actually work, so I gathered
some information and ideas here.

My idea is to develop a help system agnostic framework, so the
software does the same calls to display help independently of the file
type.

The idea is quite simple. Just add some Delphi help methods to
TApplication, like:

function HelpContext(Context: Integer): Boolean;
function HelpCommand(Command: Word; Data: Longint): Boolean;
property HelpFile: string;
function HelpJump(const JumpID: string): Boolean;

The developer will use this functions (and only them) to access the
underlying help engine.

But only implement them as calls to a object set by a property, like:

TApplication.HelpEngine: THelpEngine;

This would be like a DataSet in the sence that on the startup of your
application you set that property to the HelpEngine of your
preference, be it CHM, CHM-like, sqlite, or whatever.

So now people can develop their engines. One of the engines could be
WinHelp, and that one would be compatible with Delphi =)

The default could be empty help (nil), and engines are on their own
units, so filesize is preserved =)

Another option is not to have this on TApplication, but rather on a
component you can drop on the form. Then you can link that to other
components that are the help engines.

I also have some doubts:

* The Help context is a integer on Delphi. Is this good enougth? Or
some help systems would we rather have a string for help context?

Also contribute your own ideas for a framework =)

Ah, and remember this is specifically targeted for apps created on
Lazarus, not particularly for the IDE Help.

thanks,
--
Felipe Monteiro de Carvalho

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to