How to create a help system for own Xojo desktop app(WIN)

How can I create a help system for my own Xojo desktop app?
It’s only a small app.

Should I use a:

  • Compiled HTML Help File?
  • Web help? (App is online)?

How do I the call of the help sytem inside the Xojo app?

BR
Bernd

you can create an html file, store it as a constant in the app, and make a window with an htmlviewer inside just to display it if the user chooses help.

2 Likes

Using html has as well the advantage that you could later put it on the internet, every one can read html these days.

For compiling the html files I’m using medics

The learning curve isn’t high and you can easily use it with GitHub.com for maintenance and it will create static html files which you can include with your app as said above.

I’m not a windows guy but im sure you will find some documentation to get you up and running on Windows.

1 Like

I made a window that mimics the xojo help window.
then a sqlite database with one table, storing the help topics
one field for the help topic id, it’s name, it’s content as markdown, then generate the html content of the markdown, store it also in the same table.
display the html of the help topic in an htmlviewer.
simple, and the table can be stored in the app, in the sqlite database, or shared in a network database.


2 Likes

Yes Jean-Yves, I thought in the same direction.
Can somebody explain how to get it run in Xojo?
How do I realize a context sensitive help?

I don’t found in the Xojo help something for setting an context help ID for example.

BR
Bernd

1 Like

You could probably create a global variable, something like:

Var whereMyUserActuallyIsInTheAppBeforeClickingHelp as string

And within your Windows (or buttons etc) you are populating this variable with the current “location”.

myVariable = "mainWindow" or
myVariable = "mainWindow/buttonGenerateReport01" 

etc.

and then the user opens the help you could react on the values in this global variable.

This’ll work but it sounds like a lot of work. I like @Jean-Yves_Pochez solution very much, but it sounds like a lot of work as well. Here is a small online help I did for one customer with mkdocs (I wrote medics yesterday by mistake). There is no need to put these html files in the internet you could just deploy them with your app and show them in an own html viewer. Context would still work, as you can decide which html document should be shown first.

Mkdocs will do the templating and Markdown conversion to html for you and it is free.

BTW, the reason why the above help is put online (and of course you could make it password protected as well or put it on an intranet) is that I don’t need to provide a new version of the app after I updated the documentation. In this particular case the customer did have the admin rights to install a program and not the man power to deploy new versions very often. Hence, the need for separating the help functionality from the core app.

It’s to complex for me and for what I want to do.

Has Xojo an easy integrated possibility for a help system?

What about Help Crafter for Mac?

I use a Windows system.

I went the html route, with the html directory built into the Resources folder.

I’ve also localized this, with separate html directories inside parent folders named for the language. Then when the Help menu calls, the folderitem it’s looking for is the localized string.

1 Like

I’m all in favor for the html route (and any html editor will help you). For many reasons, some are:

  • Very flexible
  • Will run on almost any platform (you never know if one day you won’t develop for another platform than Windows
  • A user might using your app in a virtualizer, but wants to read the documentation on his or her native system.
  • Don’t try to reinvent the wheel. User know how to work with a browser, how to add favorites, create pdfs, searching, adding annotations, etc.
  • Easy to maintain
1 Like

Future Jerry: Now I see that, on Windows, I have to use WebKit rendering with HTMLViewer, instead of native, for it to scale properly on HiDPI monitors.

This is hardly a surprise, but my built app just grew by >150 MB. In this case, just for a help book. :stuck_out_tongue:

Do you?

See this thread.
Maybe that works for you, too.

1 Like

Indeed it does. Thank you!!!

With your help (and the Clipboard), it was easy :slight_smile:

Amusingly, when I run the example project, I get nagged to upgrade to Edge. :smiley:

Edit: We’ll see what Windows 11 does to it.

Future Jerry: The answer seems to be “nothing”. With what I’d read about so much old IE stuff getting stripped out of 11, I was afraid we might lose the native renderer, which I think is IE based. But I upgraded my Windows Fusion VM this morning, and everything is fine. Let’s just hope this is the case with new-in-the-box Windows 11, and not just with upgrades.

1 Like

I like future Jerry posts :yum:

1 Like

The initial one was because I’d re-opened a pretty old thread. Which I’m glad I did, because Jürg chimed in. :slight_smile:

1 Like

I noticed, it is a handy way to keep the community updated on the original problem especially if a solutions hasn’t been found.

It also really helps “newbies” like me (who was going to post the same question) lol

2 Likes

I’m using Google Docs Slides online and link to a slide via the address. Note: Change edit in the address string to present otherwise your slide will open in the slide show mode you want to be in the presentation mode. I have a module with a method called Helpme which has a Select case statement and a case for each System.gotoUrl(“address”). The global variable Whichhelp is the pointer to the Select Case Whichhelp.

In the Keydown event, I check to see if the F1 key was pressed.

Var KP as string = Key

if KP = 200 then
Whichhelp = 2 'the address represented by Case 2
Helpme ’ The method in the module
End If

I change the number for WichHelp in the Keypress event of each field depending on where I go in help.
Here is a link to the slideshow I’m building, it’s not anywhere complete.

Ten years or so ago, in the days when lots of people wrote useful and well-documented add-ons for RealStudio, a company called Electric Butterfly shared a thing called HelpRunner. It generates in-app Help for Mac and Windows; under Windows it uses HTML and Window’s CHM system. Could probably be updated for Xojo without too much trouble.

ftp://pragmaticdesigns.com/HelpRunner%201.2.zip