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.
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. |
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.
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. |
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.
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.
Das Headerfile muß separat mit einem Texteditor erstellt werden - im Project wird es lediglich im [MAP] Bereich verknüpft.
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. |
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.
Im Bereich [MAP] wird die Verbindung zum Headerfile hergestellt:
#include vba.h
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.
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".
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
PC-Welt 12/2000 S.346 - hier gab es einige brauchbare Hinweise (dekompilieren)