Add Help to Your Application/de

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de) English (en) español (es) français (fr) русский (ru) 中文(中国大陆) (zh_CN)


Hilfe für Ihre Anwendungen

Die LCL besitzt ein Hilfesystem und ermöglicht es Ihnen, Ihren eigenen Anwendungen eine Hilfefunktion hinzuzufügen.

Schnellstart

Öffnen Sie das Beispiel in examples/helphtml/.

Dieses Projekt demonstriert, wie die HTML-Hilfekomponenten zu verwenden sind. Legen Sie sie einfach auf einem Formular in Ihrem Projekt ab. Richten Sie die Pfade ein und erzeugen Sie einige HTML-Seiten. Weisen Sie dann jedem Bedienelement in Ihrer Anwendung ein Hilfeschlüsselword (HelpKeyword) zu.

Beachten Sie bitte auch den Abschnitt über die "CHM Hilfe" falls Sie an Stelle der HTML-Hilfedateien lieber CHM-Hilfedateien verwenden möchten.

Hilfe - Grundlagen

Die LCL - Hilfe besteht hauptsächlich aus zwei Teilen: den Hilfe-Datenbanken und einem Hilfe-Betrachter. Eine Hilfe-Datenbank enthält die Zuordnung der Schlüsselwörter (ID, node, message, pascal, ...) zur Hilfeseite (oder was auch immer). Der Hilfe-Betrachter wird von der Hilfe-Datenbank aufgerufen, um dem Benutzer die Hilfe zu zeigen.

  • Eine THelpDatabase verwaltet die Inhalte. Diese können aus einer Sammlung von HTML-Seiten oder fpdoc-XML-Dateien bestehen, aus einer CHM-Datei, einer Datenbank oder was auch immer.
  • Ein THelpViewer ist eine Komponente zum Anzeigen der Hilfe. Beispielsweise kann ein Viewer für den Mimetyp text/html einen Webbrowser starten.

Wenn Hilfe angefordert wurde, durchsucht die LCL jede registrierte THelpDatabase und jede Datenbank kann eine Liste von Einträgen zurückliefern. Falls mehrere Einträge aufscheinen, ersucht die LCL den Benutzer, einen Eintrag auszuwählen. Dann beauftragt die LCL die Datenbank, diesen Hilfeeintrag anzuzeigen. Die Datenbank extrahiert den Hilfeinhalt und fragt die LCL nach einem Viewer der den Mimetyp des Inhalts unterstützt. Zuletzt zeigt der Viewer den Hilfeinhalt an.

CHM

In Lazarus 1.0 wurde die Unterstützung für eine kontextsensitive CHM-Hilfe für Ihre Anwendungen hinzugefügt.

Ein enthaltenes Demonstrationsprogramm zeigt, wie Sie die kontextsensitive CHM-Hilfe und den lhelp CHM-Viewer (übrigens denselben, der auch von der IDE-Hilfe benutzt wird) einsetzen können. Sehen Sie dazu bitte lazarus/components/chmhelp/democontrol/.

Schreiben Sie Ihre eigenen CHM-Dateien, z.B. mit dem etwas antiquierten Microsoft HTML Workshop oder mit den neuen Lazarus ChmMaker-Tools in lazarus/tools/chmmaker. Sie können ein CHMHelpDatabase-Steuerelement genau so benutzen wie das unten beschriebene HTMLHelpdatabase-Steuerelement.

Der Vorteil des CHM Systems ist eine einzelne, kleinere Hilfedatei an Stelle von mehreren Dateien. Andererseits hat nicht jedes System einen CHM-Viewer. Deshalb könnten Sie lhelp mitliefern, einen CHM-Viewer, der in Pascal geschrieben ist. Den Quelltext finden Sie in den Lazarus-Quellen: (components/chmhelp/lhelp/lhelp.lpi).

LHelp benutzen

  • Fügen Sie einen TLHelpConnector in Ihr Formular ein.
  • Legen Sie einen LHelpPath mit dem Namen und dem Speicherort der ausführbaren LHelp-Datei fest (dies kann absolut oder relativ zum Anwendungsverzeichnis sein).
  • Setzen Sie AutoRegister auf true.
// Example with both chm file and LHelp.exe in Application folder.
Procedure TForm1.FormCreate(Sender: TObject);
Begin
  If FileExists(ChangeFileExt(Application.ExeName, '.chm')) Then
  Begin
    CHMHelpDatabase1.Filename := ChangeFileExt(Application.ExeName, '.chm');
    CHMHelpDatabase1.Keyword := 'test';
    CHMHelpDatabase1.AutoRegister:=True;

    LHelpConnector1.LHelpPath := IncludeTrailingBackSlash(ExtractFileDir(Application.ExeName)) + 'lhelp.exe';
    LHelpConnector1.AutoRegister:=True;
  end
  Else
    mnuHelpMain.Enabled := False;
End; 

Procedure TForm1.Button1Click(Sender: TObject);
Begin
  If mnuHelpMain.Enabled Then  
    ShowHelpOrErrorForKeyword('','test/Main.html');
    //ShowTableOfContents;  (Not implemented for TCHMHelpDatabase)
End;

HTML

Die LCL bietet zwei Komponenten mit HTML-Dateien als Hilfe: THTMLHelpDatabase und THTMLBrowserHelpViewer. Ein Beispiel für die HTML-Hilfe finden Sie unter: examples/helphtml/htmlhelp1.lpi.

Einrichten der HTML-Hilfe für Ihre Anwendung

Es ist einfach, Ihrer Anwendung eine HTML-Hilfe hinzuzufügen:

Lazarus help items
  • Geben Sie eine THTMLHelpDatabase auf ein Formular.
  • Setzen Sie AutoRegister auf true.
  • Setzen Sie KeywordPrefix auf HTML/. Das bedeutet, dass alle Schlüsselwörter mit der Zeichenkette HTML/ beginnen müssen.
  • Setzen Sie BaseURL auf file://html/. Dadurch werden die HTML-Dateien im Unterverzeichnis html gesucht. Sie können vollständige Pfade wie file:///usr/lib/yourhelp/ oder einen URL wie http://www.yoursite.com/ angeben.
  • Geben Sie einen THTMLBrowserHelpViewer auf das Formular. Diese Komponente kann den Standardbrowser des Benutzers starten.
  • Setzen Sie AutoRegister auf true.

Erzeugen eines Hilfeeintrags

  • Legen Sie jetzt das Unterverzeichnis html an und erzeugen Sie eine HTML-Seite html/edit1.html.
  • Geben Sie ein TEdit auf das Formular.
  • Setzen Sie HelpType auf htKeyword
  • Setzen Sie HelpKeyword auf html/edit1.html

Wenn Ihr Programm läuft, setzen Sie den Focus auf das Edit-Element und drücken Sie F1 für Hilfe. Unter OS X ist die Hilfetaste Cmd-? (oder Cmd+Shift+? abhängig von Ihrem Tastatur-Layout). Anmerkung: Einige Fenster-Manager / Widgetset - Kombinationen leiten F1 nicht an die LCL weiter.

INF (mit dem DocView-Hilfe-Viewer des Toolkits fpGUI)

Siehe den Beitrag und das Beispielprojekt im Lazarus-Forum. [1] Es wird ein voll funktionsfähiges Beispiel einer LCL-Anwendung mit dem DocView-Hilfe-Viewer des Toolkits fpGUI mit kontextsensitiver und allgemeiner Hilfe gezeigt.

Beispielsweise:

  • Setzen Sie den Fokus auf ein bestimmtes Steuerelement und drücken Sie F1. Es wird das Hilfethema für dieses Steuerelement angezeigt.
  • Klicken Sie auf den Button Hilfe, um das Hilfethema für den Dialog / das Formular anzuzeigen.
  • Wählen Sie den Menüpunkt "Hilfe -> Hilfe anzeigen". Daraufhin wird die allgemeine Anwendungshilfe und das erste Thema in der Hilfedatei angezeigt.