Add Help to Your Application/de: what changed
Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | - | ||
| 2 | - | ||
| 3 | - | ||
| 4 | - | ||
| 1 | + | =Hilfe für Ihre Anwendungen= Die LCL besitzt ein Hilfesystem und ermöglicht es Ihnen, Ihren eigenen Anwendungen eine Hilfefunktion hinzuzufügen. | |
| 5 | 2 | ||
| 6 | - | ||
| 7 | - | ||
| 3 | + | ## Schnellstart | |
| 8 | 4 | ||
| 5 | + | Öffnen Sie das Beispiel in examples/helphtml/. | |
| 6 | + | ||
| 7 | + | 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. | |
| 8 | + | ||
| 9 | + | Beachten Sie bitte auch den Abschnitt über die "CHM Hilfe" falls Sie an Stelle der HTML-Hilfedateien lieber CHM-Hilfedateien verwenden möchten. | |
| 10 | + | ||
| 11 | + | ## Hilfe - Grundlagen | |
| 12 | + | ||
| 13 | + | 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. | |
| 14 | + | ||
| 15 | + | - 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. | |
| 16 | + | - Ein THelpViewer ist eine Komponente zum Anzeigen der Hilfe. Beispielsweise kann ein Viewer für den Mimetyp text/html einen Webbrowser starten. | |
| 17 | + | ||
| 18 | + | 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. | |
| 19 | + | ||
| 20 | + | ## CHM | |
| 21 | + | ||
| 22 | + | In Lazarus 1.0 wurde die Unterstützung für eine kontextsensitive CHM-Hilfe für Ihre Anwendungen hinzugefügt. | |
| 23 | + | ||
| 24 | + | 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/. | |
| 25 | + | ||
| 26 | + | 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. | |
| 27 | + | ||
| 28 | + | 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). | |
| 29 | + | ||
| 30 | + | ### LHelp benutzen | |
| 31 | + | ||
| 32 | + | - Fügen Sie einen **TLHelpConnector** in Ihr Formular ein. | |
| 33 | + | - Legen Sie einen **LHelpPath** mit dem Namen und dem Speicherort der ausführbaren LHelp-Datei fest (dies kann absolut oder relativ zum Anwendungsverzeichnis sein). | |
| 34 | + | - Setzen Sie **AutoRegister** auf true. | |
| 35 | + | ||
| 36 | + | ``` pascal | |
| 37 | + | // Example with both chm file and LHelp.exe in Application folder. | |
| 38 | + | Procedure TForm1.FormCreate(Sender: TObject); | |
| 39 | + | Begin | |
| 40 | + | If FileExists(ChangeFileExt(Application.ExeName, '.chm')) Then | |
| 41 | + | Begin | |
| 42 | + | CHMHelpDatabase1.Filename := ChangeFileExt(Application.ExeName, '.chm'); | |
| 43 | + | CHMHelpDatabase1.Keyword := 'test'; | |
| 44 | + | CHMHelpDatabase1.AutoRegister:=True; | |
| 45 | + | ||
| 46 | + | LHelpConnector1.LHelpPath := IncludeTrailingBackSlash(ExtractFileDir(Application.ExeName)) + 'lhelp.exe'; | |
| 47 | + | LHelpConnector1.AutoRegister:=True; | |
| 48 | + | end | |
| 49 | + | Else | |
| 50 | + | mnuHelpMain.Enabled := False; | |
| 51 | + | End; | |
| 52 | + | ||
| 53 | + | Procedure TForm1.Button1Click(Sender: TObject); | |
| 54 | + | Begin | |
| 55 | + | If mnuHelpMain.Enabled Then | |
| 56 | + | ShowHelpOrErrorForKeyword('','test/Main.html'); | |
| 57 | + | //ShowTableOfContents; (Not implemented for TCHMHelpDatabase) | |
| 58 | + | End; | |
| 59 | + | ``` | |
| 60 | + | ||
| 61 | + | ## HTML | |
| 62 | + | ||
| 63 | + | 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. | |
| 64 | + | ||
| 65 | + | ### Einrichten der HTML-Hilfe für Ihre Anwendung | |
| 66 | + | ||
| 67 | + | Es ist einfach, Ihrer Anwendung eine HTML-Hilfe hinzuzufügen: <img src="LazHtmlHelp.jpg" title="Lazarus help items" width="500" alt="Lazarus help items" /> | |
| 68 | + | ||
| 69 | + | - Geben Sie eine **THTMLHelpDatabase** auf ein Formular. | |
| 70 | + | - Setzen Sie **AutoRegister** auf true. | |
| 71 | + | - Setzen Sie **KeywordPrefix** auf **HTML/**. Das bedeutet, dass alle Schlüsselwörter mit der Zeichenkette *HTML/* beginnen müssen. | |
| 72 | + | - 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. | |
| 73 | + | ||
| 74 | + | - Geben Sie einen **THTMLBrowserHelpViewer** auf das Formular. Diese Komponente kann den Standardbrowser des Benutzers starten. | |
| 75 | + | - Setzen Sie **AutoRegister** auf true. | |
| 76 | + | ||
| 9 | 77 | ### Erzeugen eines Hilfeeintrags | |
| 10 | 78 | ||
| 11 | - | ||
| 12 | - | ||
| 13 | - | ||
| 14 | - | ||
| 79 | + | - Legen Sie jetzt das Unterverzeichnis *html* an und erzeugen Sie eine HTML-Seite *html/edit1.html*. | |
| 80 | + | - Geben Sie ein TEdit auf das Formular. | |
| 81 | + | - Setzen Sie **HelpType** auf *htKeyword* | |
| 82 | + | - Setzen Sie **HelpKeyword** auf *html/edit1.html* | |
| 15 | 83 | ||
| 16 | - | ||
| 84 | + | 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. | |
| 17 | 85 | ||
| 18 | 86 | ## INF (mit dem DocView-Hilfe-Viewer des Toolkits fpGUI) | |
| 19 | 87 | ||
| 20 | - | ||
| 88 | + | Siehe den Beitrag und das Beispielprojekt im Lazarus-Forum. [1](https://forum.lazarus.freepascal.org/index.php/topic,27864.msg173887.html#msg173887) Es wird ein voll funktionsfähiges Beispiel einer LCL-Anwendung mit dem [DocView-Hilfe-Viewer](http://fpgui.sourceforge.net/screenshots_apps.shtml) des Toolkits [[fpGUI]] mit kontextsensitiver und allgemeiner Hilfe gezeigt. | |
| 21 | 89 | ||
| 22 | - | ||
| 90 | + | Beispielsweise: | |
| 23 | 91 | ||
| 24 | - | ||
| 25 | - | ||
| 26 | - | ||
| 92 | + | - Setzen Sie den Fokus auf ein bestimmtes Steuerelement und drücken Sie `F1`. Es wird das Hilfethema für dieses Steuerelement angezeigt. | |
| 93 | + | - Klicken Sie auf den Button Hilfe, um das Hilfethema für den Dialog / das Formular anzuzeigen. | |
| 94 | + | - Wählen Sie den Menüpunkt "Hilfe -\> Hilfe anzeigen". Daraufhin wird die allgemeine Anwendungshilfe und das erste Thema in der Hilfedatei angezeigt. | |
| 27 | 95 | ||
| 28 | 96 | --- | |
| 29 | - | ||
| 97 | + | *From the Free Pascal wiki, page "Add Help to Your Application/de", as it stood on 2020-03-09 after a change by Techno, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* | |
| 98 | + | Category: Help and Docs/de | |
| 99 | + | Category: Tutorials/de |
