Einbettung der Hilfe in die Anwendung ◦ ?

Wer seine Hilfetexte mit HTML Help Workshop in einer *.chm-Datei (compiled help) zusammengefasst hat, kann sie auf zwei Wegen mit einer Anwendung, zum Beispiel Testverwaltung.mdb, verbinden:

- Ein Klick auf eine Schaltfläche wie startet eine VBA-Prozedur, die eine ActiveX-DLL des HTML Help Workshops nutzt. Die Aufrufargumente bestimmen das Hilfethema.

- Der Entwickler ordnet der Taste »F1 ein Hilfethema zu, das zum jeweiligen Kontext passt.

TESTS unterstützt den Anwender ...

- durch eine möglichst selbsterklärende Benutzeroberfläche.

- durch gelbe Kurzinformation, die erscheint, wenn der Cursor auf einem Formularelement liegt.

- durch einen Klick auf die Schaltfläche . Der erscheinende Hilfetext führt zu weiteren Hilfethemen.

Das folgende Beispiel zeigt, wie sich kontextsensitive Hilfe integrieren lässt. Der VBA-Code stammt aus dem Modul Form_FrmStart von Access_Quiz.mdb. Zuerst schafft er eine Verbindung zur externen Programmbibliothek HHCtrl.ocx, indem er deren Funktion HtmlHelp vereinbart. Dann startet die Ereignisprozedur der Schaltfläche BtnHilfe () diese Funktion und übergibt ihr die eingangs vereinbarten vier Argumente, welche die Hilfedatei Tests.chm öffnen und daraus das Hilfethema AccessQuiz.htm anzeigen.

>     '--- 1. Externe DLL HHCtrl.ocx vereinbaren
>     '       (ActiveX-Control, das die Integration von Hilfethemen ermöglicht)
>     Const HH_DISPLAY_TOPIC = &H0
>     Private Declare Function HtmlHelp Lib "HHCtrl.ocx" Alias "HtmlHelpA" _
>         (ByVal hwndCaller As Long, _
>          ByVal pszFile As String, _    'kompilierte Hilfedatei
>          ByVal uCommand As Long, _     'Beschreibung der Hilfeaktion
>          dwData As Any                 'HTML-Datei mit dem Hilfethema
>         )
>         As Long

>     '--- 2. In Ziff. 1 vereinbarte Funktion mit passenden Argumenten aufrufen
>     Private Sub BtnHilfe_Click()
>       Call HtmlHelp(0, "Tests.chm", HH_DISPLAY_TOPIC, ByVal "AccessQuiz.htm")
>     End Sub

Was ändert, wenn aus einem beliebigen Formular oder Steuerelement eine Hilfedatei aufgerufen werden soll?

- BtnHilfe_Click() wird nötigenfalls durch eine Ereignisprozedur ersetzt, die statt auf einen Klick auf eine Taste wie »F1 reagiert)

- AccessQuiz.htm wird durch ein anderes Hilfethema ersetzt.

- Tests.chm wird nötigenfalls durch eine andere Hilfedatei ersetzt.

- Wenn die Hilfedatei nicht im Standarddatenbankordner von Access liegt, dann muss der absolute Verzeichnispfad der .chm-Datei vorangestellt werden (vgl. Code von Testverwaltung.mdb).