Home » Tutorials » Tools » HTML-Hilfe

HTML-Hilfe

Umleitung

Kommen wir also zum Einsatz der Helpware Group-Units, die die Aufrufe der WinHelp an die HTML-Hilfe umleiten sollen. Als erstes binden wir die Units hh.pas und hh_funcs.pas in das Hauptfenster unserer Anwendung ein. Wenn Delphi 6 oder 7 benutzt wird, muss zusätzlich die Unit D6OnHelpFix.pas aufgenommen werden:

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, hh, hh_funcs, D6OnHelpFix;
Der Hook wird als globale Variable deklariert:
var
  Form1: TForm1;
  mHHelp: THookHelpSystem;

Nun muss dieser Hook nur noch erzeugt (bei Programmstart) und wieder freigegeben (bei Programmende) werden:

procedure TMainForm.FormCreate(Sender: TObject);
var chmFile: string;
begin
  chmFile := ExtractFilePath(ParamStr(0))+'beispiel.chm';

  mHHelp := nil;

  if not FileExists(chmFile) then
    ShowMessage('Hilfe-Datei nicht gefunden'#13+chmFile);

  {HH 1.2 oder höher Versionskontrolle}
  if (hh.HHCtrlHandle = 0)
    or (hh_funcs._hhMajVer < 4)
    or ((hh_funcs._hhMajVer = 4) and (hh_funcs._hhMinVer < 73)) then
      ShowMessage('Diese Anwendung erfordert die Installation der '+
      'MS HTML Help 1.2 oder höher');

  {Hook - verwendet HH_FUNCS.pas}
  mHHelp := hh_funcs.THookHelpSystem.Create(chmFile, '', htHHAPI);
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
  HHCloseAll; // Schließt alle Hilfe-Fenster
  if Assigned(mHHelp) then
    mHHelp.Free;
  ...
end;

Die Variable chmFile enthält den kompletten Pfad zu unserer Hilfe-Datei. Wenn die Anwendung auch auf anderen Rechnern eingesetzt werden soll, sollte man hier einen fixen Pfad vermeiden und stattdessen (wie im Beispiel) den aktuellen Pfad der Anwendung auslesen und den Namen der Hilfe-Datei anhängen.
Um Anwender mit einem alten Betriebssystem, auf dem noch kein HTML-Hilfe-Update installiert ist (z. B. Windows 95), nicht mit seltsamen Fehlermeldungen zu überhäufen, wird geprüft, ob eine aktuelle Version der HTML-Hilfe installiert ist. Dazu stellt die Unit hh_funcs einige Funktionen bereit.