Setting help for the Delphi application

What is the best way to configure help (in particular HTML Help ) for a Delphi application? I see several options, all of which have flaws. In particular:

  • I could have set HelpContext in the form constructor wherever appropriate, but then I was stuck to keep track of numbers instead of symbolic constants.
  • I could programmatically set HelpContext. Then I can use symbolic constants, but I would have more code to keep up with it, and I could not easily check text DFMs to see which forms still need help.
  • I could set HelpKeyword, but since the search is for a keyword (e.g. Application.HelpKeyword) and not a topic jump (e.g. Application.HelpJump), I have to make sure that each of my help pages has a unique, immutable top-level keyword ; this seems like extra work. (And there are VCL errors related to HelpKeyword such as this and this ).
  • I can install HelpKeyword, install the Application.OnHelp handler to convert HelpKeyword requests to HelpJump requests, so that I can assign help by topic ID instead of searching for a keyword and add code, for example, my own help viewer (based on HelpScribble Code ) that fixes errors VCL also allows HelpJump to work with anchors. At this point, however, I feel that I am working against VCL, not with it.

What approach did you choose for your application?

+7
delphi
source share
4 answers

I create a help file that gets the help identifier and then looks at the forms and sets the HelpContext for them. Since the level of service required is very low - the form is unlikely to change the context of the help file, unless something important happens - this works fine.

+1
source share

When I first started researching how to do this a few years ago, I first got "All About Help Files in Borland Delphi" from http://www.ec-software.com/support_tutorials.html

This document contains the section "Preparing the Help File for Context-Sensitive Help" (which in my version of the document starts on page 28). It describes a good numbering scheme that you can use to organize your numbers into sections, for example. Starting at 100,000 for your primary form and continuing at 101,000 or 110,000 for each secondary form, etc.

But then I wanted to use descriptive string identifiers instead of numbers for my help topics. I started using THelpRouter, which is part of the free EC Software help package: http://www.ec-software.com/downloads_delphi.html

But then I settled on a help tool that supported the line identifier directly for themes (I use Dr. Explain: http://www.drexplain.com/ ), so now I just use HelpJump, for example:

Application.HelpJump ('UGQuickStart');

I hope this helps.

+6
source share

We use symbolic constants. Yes, this is a bit more work, but it pays off. Moreover, some of our dialogs are dynamically built and sometimes require different help identifiers.

+4
source share

We use Help & Manual - a great tool that displays almost any format you might want, doc, rtf, html, pdf - all from one source. It will even read (or paste from rtf (for example, MSWord). It uses a topic (line) identifier, which I simply store in the list, and I manually put each into a form (or class) as I see fit. Believe me, you will spend much more time hating the wrong outsourcing tool.I have found this for many years! Brian

+1
source share

All Articles