HTML Help Template Question

Last Wednesdays (11/30/22) open webinar I asked a question about HTML help. While converting one of my main applications from C6 to C11 I had to strip out the CCHtml template using John Hickeys Ultimate TXA (literally saved me weeks of work, thanks John). Saw in the Clarion Help files that it was supposed to be in C11 but I couldn’t find it so I assumed it was deprecated. So my question was, what was everyone using for context sensitive HTML help and what programs were being used to compile the help.

The panel basically told me that nobody was using procedure level HTML help. So I am throwing the question out to ClarionHub. I have also found that when I have created help files my clients didn’t use it and wound up calling me with their questions. But I think in certain procedures that it is helpful. We also spoke about using video files as a help format ( I use camtasia to produce the videos). Your insights and thoughts would be helpful.
thanks
Frank Acosta

Why? What errors did you get? What version of Clarion? ABC or Legacy templates?

I looked at 11.0 and 11.1 templates and I see the “cwHH*.tpw” files (CwHH, CwHHABC, cwHHCode, CwHHUtil.tpw) that are the same as C6. Those TPWs are included in the ABChain.tpl and CW.tpl templates so they should always be there. IIRC they do require having a global extension added. Do you have those files?

Clarion 8 added native CHM support to the language, what I would call the “right way”. The prior way was a template solution that generated code into every procedure. Once you get it working the old CwHH way we can discuss the new way.

Help is still being used in applications. The only native Windows help is still CHM.

This tool uses CHM. GitHub - CarlTBarnes/Legacy2ABC: 32 bit Version of Legacy to ABC Convertor
I converted it from HLP with these changes: CnvEng.clw change Help to CHM and .HTM · CarlTBarnes/Legacy2ABC@146a8e2 · GitHub

It’s been a while since I’ve done “retail” software with context help, Frank.

Looking back at old code - I used the cwHHGlobal global template. And the corresponding “Enable HTML Help on Procedure” extension on procedures. The only setting I used on the global template was the default filename = !GLO:HelpFile. And populated that global variable in program setup.

I did not use F1, but rather put a “Help” button on windows.

Then either a simple setting of the topic for the window, or a case statement for something more complicated like a wizard:

ShowHelp ROUTINE
case choice(?Sheet1)
of 1
ohh.settopic(‘awardswizard.htm’)
of 2
if LOC:Calc
ohh.settopic(‘awardsestimate.htm’)
ELSE
ohh.settopic(‘AwardsWizardQuantity.htm’)
end ! if
end ! case
ohh.ShowTopic()

Although looking back at another window that used a simple topic, I see I added the “Enable HTML Help on Procedure” and the “Set the name of the HTML Help Topic” and “Show the current HTML Help Topic” extensions.

For creating the help I used Help & Manual.
This is a really great product.
From the same source code you can generate the .CHM file for the app, generate a PDF, and generate an HTML web version.
Then put the HTML web version on your website. And when you get a support question, just email the guy a link to the page in your HTML help file.

jf

1 Like

One of the bad things about the CwHH Templates was it did not automatically handle TAB’s with HLP() (or other parents) so requires code when the Tab takes focus you get the HLP() help topic on that Tab. Your example is more complicated by the IF LOC:Calc THEN changing topics.

Done the native code Help way might be like below with just HLP on controls. All that has to be done is put HLP() on the controls, no other code. I usually have the Tabs jump to an # Anchor in a large topic for the entire Window.

WINDOW()... HLP('~AwardsWizard.htm')
  SHEET
    TAB('Tab 1'),HLP('~AwardsWizard.htm#Tab1')
    TAB('Tab 2'),HLP('~AwardsWizard.htm#Tab2')
         GROUP('Estimate'),HLP('~AwardsWizard.htm#Estimate')
         GROUP('Quantity'),HLP('~AwardsWizard.htm#Quantity')

The RTL will automatically take the HLP() of the current control, or its Parent (Sheet, Tab, Group), up to the Window’s HLP(). Typically you just have HLP on the Window but it is nice to have TABs with a HLP() that jumps into the middle.

You’ll see that in the IDE help where Browse jumps by Tab, below Conditional.

Instead of opening at the top (below) of a very long topic

image

1 Like