Bei CHM-Hilfedateien handelt es sich im Prinzip um einfache HTML-Dateien, die mit einem Inhaltsverzeichnis und einem Index zu einer Datei kompiliert werden. Als Entwicklungsumgebung kann man demnach seinen bevorzugten HTML-Editor verwenden und wird so wahrscheinlich eher Erfolge erzielen als bei den alten Hilfedateien. HTML-Kenntnisse sind nicht zwingend erforderlich, helfen aber.
Um CHM-Dateien erstellen zu können, benötigen wir den HTML Helpworkshop, den es kostenlos von Microsoft gibt. Neben dem HHW gibt es Freeware und kommerzielle Tools, mit denen man ebenfalls Hilfedateien erstellen kann, aber für dieses Tutorial beziehen wir uns auf das Programm von Microsoft.
Da wir als Delphi-Programmierer natürlich daran interessiert sind, die neuen Hilfedateien in unseren Programmen zu nutzen, brauchen wir Zugriff auf die speziellen API-Funktionen der CHM-Hilfe. Als die für mich persönlich beste Umsetzung möchte ich das HtmlHelp-API von den JEDIs nennen, das beim Testen so gut wie keine Probleme verursacht hat. Das soll keine (Ab-)Wertung gegenüber anderen Möglichkeiten darstellen. Ich bevorzuge eben das JEDI-API. Wer z.B. mit dem "HTML Help Kit for Delphi" arbeiten möchte, den verweise ich hiermit auf das Tutorial von Martin Strohal.
Doch zurück zum Thema: JEDI. Auf deren Homepage gibt es ein spezielles ZIP-Archiv zum Download, dass nur das HtmlHelp-API und einige Beispiele enthält.
Wir machen trotzdem ein eigenes. In Ordnung?
Diesem Tutorial liegt eine speziell angepasste Version der Unit "HtmlHlp.pas" bei, die auf nonVCL-Anwendungen zugeschnitten ist. Es gibt zur offiziellen Version der JEDIs keinen Unterschied, lediglich Registry- und Dateizugriffe wurden mit API-Aufrufen realisiert, um auf die Units "SysUtils.pas" und "Registry.pas" verzichten zu können.
Einige benutzte Codeteile stammen aus den Beispielen der JEDIs. Ich sagte ja, dass ich diese API-Umsetzung für eine der besten halte. Und damit lässt sich demzufolge auch am besten arbeiten.