VB Startseite

HTML Help

HTML Helpdateien sollen der neue Standard zum Hinterlegen von Hilfetexten sein. Ganz so weit ist es noch nicht. Doch eine help.chm Datei lässt sich mit recht einfachen Mitteln erzeugen - wenn man den Microsoft HTML-Workshop hart rannimmt.

Hier beschreibe ich den grundsätzlichen Aufbau einer Hilfedatei und einige spezielle Dinge zum HTML-Workshop. Dieser ist kostenlos - download von http://msdn.microsoft.com/library/tools/htmlhelp/wkshp/download.htm.

htmlhelp_p.gif (13680 Byte) Die Projektdatei verwaltet alle Informationen zu den verwendeten Dateien.

Die Angaben zu [OPTIONS] und [FILES] kann problemlos über diese Oberfläche erfolgen.

Bei den restlichen Angaben gibt es aber unerfreuliche Zwischenfälle - da ist es besser, das Projektfile in einem Texteditor zu öffnen und die passenden Werte direkt einzutragen.

Auf [ALIAS] und [MAP] Bereich kann man aber getrost auch ganz verzichten.

Es kann auch einen Bereich [TEXT POPUPS] geben, in dem PopUp-Fenster definiert werden.

Entwurfsschritte

Inhalt schreiben

Programm: beliebiger HTML Editor

Im Gegensatz zu einem klassisch fortlaufenden Text sollten hier viele einzelne *.html Seiten mit jeweils einem bestimmten Thema geschrieben werden. Manchen Themen genügen 2 Sätze, andere wollen auch mal mehr als eine Bildschirmseite füllen. Gewarnt sei aber vor Scrollorgien - die kommen immer schlecht an. Zumal man bedenken sollte, dass ein Hilfetext meist nicht bildschirmfüllend aufgerufen wird.

Die ganze Palette von HTML Eigenschaften kann genutzt werden:

Tabellen Mit Tabellen kann man Text und Bilder ganz prima positionieren. Gibt man keine Tabellenbreite an, oder macht die Angabe wenigstens in Prozent, dann erfolgt immer eine automatische Anpassung an die Fenstergröße.
Hyperlinks Schon beim ersten Entwurf werden die Hyperlinks eingefügt. Verwandte Themen lassen sich sinnvoll direkt verbinden - eine nützliche Ergänzung zum Inhaltsverzeichnis.
Bilder Mit Screenshots und Grafiken braucht man nicht sparen: In der Regel wird die Hilfedatei nicht über das Internet aufgerufen - Ladezeiten können also vernachlässigt werden.
HotSpots Beliebige Bildbereiche erhalten Hyperlinks. So kann man sich auch durch eine Anzahl von Grafiken navigieren - Sprache und Übersetzungen sind nebensächlich.
Cascading Style Sheet Die *.css Datei enthält Formatierungsangaben (Hintergrund, Schriftart usw.) die für alle Seiten gültig sind. So wird z.B. an zentraler Stelle die Schriftgröße von 12 auf 10 verringert. Leider richten sich die verschiedenen Browser nur teilweise nach den Angaben der *css Datei.

Abraten möchte ich von Frames: Inhaltsverzeichnis und Index werden über den HTML Help Workshop hinzugefügt. Frames führen da zu Unübersichtlichkeit und stehlen nur wertvollen Anzeigeplatz.

nach oben, zu den Entwurfsschritten

Projekt anlegen

Der HTML Help Workshop 1.2 kann mit relativen Pfadangaben nicht umgehen.
Eine Syntax zur vollständigen Pfadangabe wäre: "file:\\C:\path\abc.gif".

Ich nutze immer den sichersten Weg: für Projektdateien den gleichen Pfad zu verwenden, wie für die HTML-Dateien.

So wird das neue Projekt angelegt:

File - New öffnet die nebenstehende Auswahl.
Klick auf OK erzeugt die Projektdatei mit den ersten Einträgen.
Eine Table of Contents oder ein Indexfile müssen nicht unbedingt hier angelegt werden, es erfolgt auch eine Abfrage, sobald bei der Projektbearbeitung darauf zugegriffen werden soll.

htmlhelp_n.gif (4413 Byte)

Die Dateinamenerweiterungen haben folgende Bedeutung:

*.hhp Projektfile Hier werden alle Informationen der dazugehörenden Dateien und deren Verwendung gespeichert.
*.hhc Contentsfile Die Table of Contents bildet die Struktur eines Inhaltsverzeichnisses ab.
*.hhk Indexfile Schlüsselwörter für die Indexsuche stehen hier.
*.h Headerfile Das Headerfile ist optional. Es stellt die Verbindung zur API-Nummer her, um gezielt bestimmte Seiten aufzurufen. Im Abschnitt Headerdatei erzeugen wird das beschrieben.

Diese Dateien sind als normaler ASCII Textdateien oder HTML Code gespeichert, können also auch direkt in einem normalen Editor bearbeitet werden.

nach oben, zu den Entwurfsschritten

Suche und Favoriten

Der oberste Button auf der Registerkarte Project Change Project Options öffnet den Optionen-Dialog.
Für die Suche muss auf der Registerkarte Compiler ein Haken vor Compile full-text search information gesetzt werden, dann mit OK beenden.

Und nun benutzen wir den 3. Button von oben auf der Registerkarte Projekt - das ist Add/Modify window definitions. Als Fenstername wird main eingegeben, worauf wieder eine Einstellungen erscheinen. Hier kommen Haken vor Search tab, Advanced und Favorites tab. Nun stehen Volltextsuche und logische Operatoren (AND, OR, NEAR, NOT) zur Verfügung.

nach oben, zu den Entwurfsschritten

Headerdatei erzeugen

Das Headerfile muß separat mit einem Texteditor erstellt werden - im Project wird es lediglich im [MAP] Bereich verknüpft.

htmlhelp_h.gif (5483 Byte) Wie dargestellt enthält jede Zeile eine Referenz.
Sie beginnt immer mit #define, gefolgt von Trennung, IDH_aliasname, Trennung und Referenznummer der API.

Diese Nummer wird im Visual Basic vor dem Hilfeaufruf der Variablen Helpkontext zugewiesen.

nach oben, zu den Entwurfsschritten

Beine machen

Probleme beim Auffinden bestimmter #define Einträge für die kontextsensitive Hilfe sind bekannt.
Für die folgenden Einträge sollte man nicht den HTML Help Workshop verwenden, sondern das Projektfile in einem normalen Texteditor bearbeiten.

[MAP]

Im Bereich [MAP] wird die Verbindung zum Headerfile hergestellt:
#include vba.h

[ALIAS]

Der Bereich [ALIAS] ordnet nun den Kontextvariablen je einen Hyperlink zu:
IDH_EXCEL=vb_excel.htm;VBA für Excel

In dieser Sektion gibt es beliebig viele Einträge.
Sollten nun hier bestimmte Verbindungen nicht funktionieren, kann man die [ALIAS] Liste probehalber modifizieren:
Die betreffenden Einträge sollten in der Liste weiter hinten platziert werden, oder man beginnt die ALIAS Liste mit Dummy-Einträgen. Das äußert sich durch eine Fehlermeldung beim Kompilieren: "[MAP] Section not found" - ignorieren. Bei mir genügte es, einen zusätzlichen Eintrag an erster Stelle zu platzieren.

nach oben, zu den Entwurfsschritten

Kompilieren und Einbinden

Mit compile beschließt der HTML Help Workshop seine Arbeit. Dabei ist nur wichtig, ob eine funktionierende help.chm Datei entsteht.
Fehlermeldungen können oft ignoriert werden. So entsteht z.B. bei jedem grafischen Hyperlink eine Fehlermeldung, obwohl diese in der Hilfedatei prima funktionieren.

In einem Visual Basic Projekt verweist man auf die Hilfedatei am besten in den "Projekteigenschaften".

Aufruf mit F1

Um die Hilfe mit F1 zu starten, muß die Formulareigenschaft "WhatsThisHelp" in allen Formularen abgeschaltet sein.
Für die kontextsensitive Hilfe muss jeweils zuvor "HelpContextID" auf den entsprechenden Wert eingestellt werden.
Natürlich kann man diesen Aufruf auch mit Programmcode erzeugen (z.B. im Hilfemenü):
Sendkeys "{F1}", TRUE

siehe auch

PC-Welt 12/2000 S.346 - hier gab es einige brauchbare Hinweise (dekompilieren)

VB Startseite nach oben, zu den Entwurfsschritten