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