Dieses Kapitel wird Ihnen zeigen, nach welchem Prinzip die CHM-Version der Win32-API-Tutorials für Delphi funktionierte. Sie werden erfahren wie man mehrere Hilfedateien zusammenfassen kann und welche besonderen Einstellungen dabei zu beachten sind. Sie dürfen diese Informationen gern als Grundlage für eigene Projekte nutzen.
Ich möchte Sie an dieser Stelle auf den Artikel "HTML Help - Using Merge" verweisen, der mir als Grundlage für die nachfolgenden Erläuterungen diente.
Der offensichtliche Vorteil ist der, dass man verschiedene Hilfedateien mit verschiedenen Themen in einem Fenster zusammenfassen kann. Des Weiteren macht dies auch Aktualisierungen sehr einfach. Sind z.B. Korrekturen oder Ergänzungen erforderlich, muss man nur die entsprechende Hilfedatei anpassen. Die anderen Hilfedateien der Sammlung bleiben im Idealfall unverändert. Bei der Weitergabe reicht dann auch ein simples Kopierprogramm, das die aktualisierte Hilfedatei in den Zielordner kopiert.
Für die beteiligten Autoren ergibt sich der Vorteil, dass sie nicht unbedingt ihre Quelldateien in bestehende Hilfedateien einfügen müssen. So lassen sich Fehler (fehlende oder falsche Topics, usw.) vermeiden. Als Beispiel: jemand schreibt einen Beitrag mit sehr vielen Einträgen im Inhaltsverzeichnis und Index. Würde man diese Dateien und Informationen nun in eine andere Hilfedatei einfügen, bestünde die Gefahr, ein paar Topics zu übersehen. Bei einer Zusammenfassung erhält dagegen die "Master-Datei" einen neuen Eintrag, der direkt auf die Hilfedatei des Autors verweist. Dieser ist also letztlich dafür verantwortlich, dass alle Themen auch im Inhaltsverzeichnis und Index auftauchen.
Für eine Zusammenfassung ist immer eine so genannte "Master-Datei" verantwortlich, die in ihrem Inhaltsverzeichnis auf die Inhalte der anderen Hilfedateien verweist. Diese Datei muss bei Referenzen im Startmenü immer verwendet werden. Sollen generell alle, in der Sammlung benutzten Hilfedateien das gleiche, zusammengefasste Inhaltsverzeichnis zeigen, ist in den Projektoptionen jeder CHM-Datei das Inhaltsverzeichnis der "Master-Datei" anzugeben.
Referenzen auf andere Hilfedateien benötigen immer einen übergeordneten Knotenpunkt im Inhaltsverzeichnis (s. auch hier). Andernfalls wird der vorherige Eintrag im Inhaltsverzeichnis als Knoten dargestellt, was zu unschönen Ergebnissen führen kann.
Verweist ein Eintrag im Inhaltsverzeichnis der "Master-Datei" auf eine nicht vorhandene Hilfedatei, wird das Thema nicht angezeigt, wenn danach weitere Themen folgen. Oder es wird als leere Seite angezeigt, wenn es das letzte Thema in der Master-Datei ist.

Das Problem lässt sich relativ elegant lösen, wenn Sie der Beschreibung (im Bild "Delphi und die Hilfedateien") eine Seite aus der Hilfedatei als Haupttopic und eine Fehlerseite aus der Master-Datei als alternative URL zuordnen.
Die "base.chm" der Tutorials funktioniert nach diesem Prinzip. Im Normalfall (wenn die entsprechende Hilfedatei vorhanden ist) zeigt ein Klick auf die Beschreibung eine Art "Vorwortseite" aus der Hilfedatei an. Existiert die Datei nicht, wird die Fehlerseite angezeigt, so dass der Anwender die kompletten Tutorials notfalls von den Webseiten der Autoren holen kann.
Zu guter Letzt der Hinweis auf gleiche Namen in verschiedenen Hilfedateien. Wenn Sie etwa "index.html" als Vorwort in unterschiedlichen Hilfedateien benutzen, kann es passieren, dass der Hilfebetrachter den falschen Eintrag im Inhaltsverzeichnis anzeigt, wenn Sie über einen Link auf die Hilfedatei zugreifen.
Es wird zwar das korrekte Thema angezeigt, aber möglicherweise stoppt der Hilfebetrachter beim ersten Vorkommen einer Datei "index.html". Und das muss nicht zwangsläufig der richtige Eintrag im Inhalt sein.
Geben Sie solchen (Vorwort-)Seiten daher möglichst unterschiedliche Namen. Das Vorwort dieses Tutorials heißt bspw. "index_h.html" und kollidiert daher auch nicht den Namen der anderen Vorworte (etwa "ui-index.html" für das Thema "Fenster und Controls", "sys-index.html" für "Systemfunktionen", usw.)