Some more info from my Kylix 3 HelpIntfs.pas

This unit is the primary unit for the combined VCL/CLX Help System.
TApplication contains a pointer to an IHelpSystem, through which it
calls into the Help System Manager. The Help System Manager maintains
a list of custom Help Viewers, which implement ICustomHelpViewer and,
if desired, one of several extended help interfaces derived from it.
Help Viewers talk to the Help System Manager through the IHelpManager
interface, which is returned to them when they register.

Code wishing to invoke the Help System can go through Application, or
can call the flat function GetHelpSystem, which will return an
IHelpSystem if one is available. Viewers register by calling
RegisterViewer, which returns an IHelpManager.

The same mechanism will work for design packages wishing to integrate
with the IDE Help System; calling HelpIntfs.RegisterViewer() in the
Register() procedure will cause the Viewer to be registered.


Regards,
 - Graeme -



On 12/05/06, Graeme Geldenhuys <[EMAIL PROTECTED]> wrote:
I don't like the Help Component idea.  I think adding methods to the
TApplication is better.

I am not sure if you are familiar with the Kylix Help system (more
correctly a CLX help system as it works under Windows too).  It uses a
bunch of Interfaces (IHelpSystem, ICustomHelpViewer,
IExtendedHelpViewer, etc...) to implement the help and works really
well and it is very easy to extend with different help
systems/viewers.  Borland created two help viewers for Kylix.  A Man
Page viewer and a Hyper Help viewer.  J.G.Software created a simple
HTML Help viewer based on the QTextBrowser component.

Kylix 1 HelpIntfs.pas   =>  http://tinyurl.com/fesp8
J.G.Software HTML help viewer =>  http://www.helpscribble.com/linux.html
BDN Article HTML help viewer  =>  http://tinyurl.com/og8nj

Regards,
  - Graeme -


On 12/05/06, Felipe Monteiro de Carvalho
<[EMAIL PROTECTED]> wrote:
> 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
>


--
There's no place like 127.0.0.1



--
There's no place like 127.0.0.1

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

Reply via email to