Einen Index erstellen


Für einen Index gibt es bei CHM-Hilfedateien zwei Möglichkeiten.

Der gewohnte Weg über HTML

Im HTML Helpworkshop klicken Sie auf den Reiter "Index" und wählen aus, dass Sie eine neue Datei erstellen möchten. Wenn Sie bereits eine vorhandene Indexdatei haben und nutzen möchten, dann verwenden Sie die entsprechende Option.

Um einen neuen Eintrag einzufügen, benutzen Sie die Schaltfläche mit dem Symbol des Schlüssels. Die Vorgehensweise entspricht dann in etwa dem Anlegen des Inhaltsverzeichnisses: Unter "Keyword" geben Sie den Begriff ein, der im Index erscheinen soll, und mit dem "Add"-Button fügen Sie eine oder mehrere HTML-Seiten als Verweise ein.

Natürlich sind auch gezielte Angaben mit Ankern ("Bookmarks") möglich. Wenn sich das gesuchte Thema beispielsweise etwas weiter unten auf der HTML-Seite befindet und möglicherweise nicht von Anfang an im Hilfefenster zu sehen ist, dann definieren Sie einen Anker an der Position, an der das Thema beginnt.

<a name="MeinAnker"></a>
<h2>Mein gesuchtes Thema</h2><br>
<p>bla bla bla</p>

Im Index müssen Sie dann den Namen der HTML-Seite und den Namen des Ankers als Verweis angeben, z.B.:

Keyword : Ziel mit Anker
Url     : MeineSeite.html#MeinAnker

Mehrere Referenzen auf einen Eintrag im Index

Wenn Sie einem Begriff mehrere HTML-Seiten zuordnen, erscheint später in der CHM-Hilfedatei eine Dialogbox mit allen Links zur Auswahl.

Auswahl untergeordneter Einträge erzwingen

Wenn Ihr Begriff ein übergeordneter Index ist, der mehrere Themen gruppiert, dann können Sie die Auswahl eines untergeordneten Eintrags erzwingen. Dazu aktivieren Sie in den Eigenschaften des Eintrags die Option "Target is another keyword" und geben als URL den selben Text an, der auch Ihren Index bezeichnet. Als Titel schreiben Sie "untitled". Bei der Auswahl würde später die Aufforderung erscheinen, einen untergeordneten Eintrag auszuwählen, und genau das wollten wir ja.

KLinks

Ohne externe Indexdatei können Sie Indexeinträge auch mit Hilfe von KLinks anlegen. Dabei handelt es sich um ein ActiveX-Objekt, das in den HTML-Code der Seite eingefügt wird. Sie öffnen die gewünschte HTML-Seite im HTML Helpworkshop und positionieren den Cursor an der Stelle im Code, an der Sie die KLinks einfügen wollen. Dann benutzen Sie den Menübefehl "Edit/Compiler Information ...". (Dieser Befehl ist nur verfügbar, wenn Sie eine HTML-Seite geladen haben.)
Benutzen Sie nun auf der Registerseite "Keywords" den Button "Add" und tragen Sie die gewünschten Worte ein, die später im Index erscheinen sollen. Mehrere Worte werden durch Semikolon voneinander getrennt.

Wenn Sie alle Worte eingetragen haben, dann fügt der HHW der Seite z.B. folgenden Code hinzu:

<object type="application/x-oleobject"
  classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
    <param name="Keyword" value="anzeigen">
    <param name="Keyword" value="Delphi">
    <param name="Keyword" value="erster Hilfetext">
</object>

Mehrere Referenzen auf einen Eintrag im Index

Hier gilt das selbe wie bei dem Weg über die externe Indexdatei: wenn Sie einen Begriff mehrfach in verschiedenen HTML-Seiten benutzen, erscheint bei der Auswahl eine Dialogbox mit allen Entsprechungen.

KLinks innerhalb der Hilfedatei verwenden

Mit KLinks werden normalerweise die gefundenen Themen aufgelistet. Dazu öffnen Sie die Seite, die einen solchen Suchverweis enthalten soll, wieder im HTML Helpworkshop und positionieren den Cursor an einer gewünschten Stelle innerhalb des "BODY"-Tags. Klicken Sie nun auf den "HTML Help ActiveX Control"-Button in der Toolbar und wählen Sie "Keyword Search" aus der oberen Liste aus. Die untere Eingabezeile enthält einen eindeutigen Namen für das Control. Wenn Sie mehrere verwenden wollen oder müssen, muss jedes Control einen eigenen und eindeutigen Namen haben.

Im nächsten Schritt können Sie auswählen, ob das Control als Button erscheinen oder unsichtbar sein soll. Wenn Sie einen Button als Control gewählt haben, können Sie im nächsten Schritt über dessen Gestaltung befinden.

Dann geben Sie die Worte an, nach denen gesucht werden soll. Mehrere sind wieder durch Semikolon voneinander zu trennen. Befinden sich die Worte in einer anderen Hilfedatei, können Sie diese hier ebenfalls angeben. Der HHW fügt letztlich z.B. folgenden Code ein:

<OBJECT id="kwrd" type="application/x-oleobject"
  classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"
  codebase="hhctrl.ocx#Version=4,74,8875,0" width=100 height=100>
    <PARAM name="Command" value="KLink">
    <PARAM name="Button" value="Text:Suche nach dem doppelt genutzten Eintrag">
    <PARAM name="Flags" value=",,1">
    <PARAM name="Item1" value="">
    <PARAM name="Item2" value="doppelt genutzter Eintrag">
</OBJECT>

Wenn Sie sich für ein unsichtbares Control entschieden haben, dann können Sie die Funktion mit Hilfe eines Scriptlinks auslösen

<a href="javascript:kwrd.Click()">Suche nach dem doppelt genutzten Eintrag</a>

Als schöner Nebeneffekt lässt sich hier auch eine Seite festlegen, die im Fehlerfall angezeigt wird. Im o.g. Code des ActiveX-Controls ist das nicht erforderlich, weil der Button automatisch deaktiviert wird, wenn das Thema nicht gefunden wurde. Dafür sorgt die Zeile "<PARAM name="Flags" ...>". Bei einem unsichtbaren Control, bzw. einem Button-Control ohne das eben genannte Flag, ergänzen Sie den Parameter "DefaultTopic", dem Sie als Wert den Namen der gewünschten Seite übergeben.

    <PARAM name="DefaultTopic" value="oops.htm">

Die Beispielhilfedatei, die diesem Tutorial beiliegt, macht es anhand eines unbekannten Begriffs vor.