Sign in Join
Wiki copytemporary

Add Help to Your Application/zh CN: what changed

Revision 3 to 4. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11LCL带来一个帮助系统,允许你 **为你自己的应用程序来创建帮助**。
22
33## 快速开始
44
5-`在 examples/helphtml/中打开示例。`
5+```
6+在 examples/helphtml/中打开示例。
7+```
68
79演示如何使用HTML帮助控件。只需要拖拽它们到你的项目中。并设置并创建HTML文件。就可以给程序提供HelpKeyword。
810
911如果要使用CHM帮助,请参照CHM帮助部分。
1012
1113这里是一个非常好的演示 (chmdemo.zip): <http://forum.lazarus.freepascal.org/index.php/topic,38487.msg261731.html#msg261731>
1214
1315## 帮助基础
1416
1517LCL帮助包含两部分: 帮助数据库和查看器. 帮助数据库包含关键字(ID, node, message, pascal, ...)到帮助页面(或者帮助网页网站,或者...)。 帮助查看器援引帮助数据库来向用户显示帮助信息。
1618
1719- [[THelpDatabase]]管理内容。它可以是HTML页面、或fpdoc XML文、或一个CHM文件、或一个数据库、或任何东西的一个集合。
1820- [[THelpViewer]]是一个显示帮助内容的组件。例如,一个mime类型的text/html查看器可以启动一个网页浏览器。
1921
2022当请求帮助时,LCL询问每个注册的[[THelpDatabase]],并且每个数据库都会返回一个条目列表。 如果返回数个条目,LCL会要求用户来选择一个条目。 接下来LCL或要求数据库来显示条目的帮助。数据库提取帮助内容,并向LCL请求支持mime类型内容的查看器。 最后,查看器显示帮助内容。
2123
2224## CHM
2325
2426上下文相关的CHM应用程序帮助自lazarus1.0和更高版本开始能够使用。
2527
2628一个演示程序,包含演示如何使用CHM和[[lhelp|lhelpCHM]]查看器(默认情况下与IDE帮助使用同一个查看器)来包含上下文相关的帮助。 请查看\${lazarusdir}/components/chmhelp/democontrol/.
2729
2830你可以写你自己的CHM文件,例如,使用古老的Microsoft HTML Workshop,或者使用新的Lazarus chmmaker 工具(位于\$(lazarusdir)/tools/chmmaker)。 你可以使用一个[[TCHMHelpDatabase]]控件,像下面描述的[[THTMLHelpDatabase]]控件。
2931
3032使用CHM系统的优点是一个较小的、独立的帮助文件,而不是多个文件。另一方面,并不是每个系统都默认安装了CHM查看器,因此您可能希望包含lhelp,一个用Pascal编写的CHM查看器,包含在Lazarus源代码(components/chmhelp/lhelp/lhelp.lpi)中。
3133
3234### 使用LHelp
3335
3436- 在你的窗体上放置一个**TLHelpConnector**。
3537- 使用LHelp可执行文件的名称和位置来设置**LHelpPath**。(路径可以是绝对的,也可以是相对于应用程序的目录)
3638- 设置**AutoRegister**为true
3739
3840``` pascal
3941// Example with both chm file and LHelp.exe in Application folder.
4042Procedure TForm1.FormCreate(Sender: TObject);
4143Begin
4244 If FileExists(ChangeFileExt(Application.ExeName, '.chm')) Then
4345 Begin
4446 CHMHelpDatabase1.Filename := ChangeFileExt(Application.ExeName, '.chm');
4547 CHMHelpDatabase1.Keyword := 'test';
4648 CHMHelpDatabase1.AutoRegister:=True;
4749
4850 LHelpConnector1.LHelpPath := IncludeTrailingBackSlash(ExtractFileDir(Application.ExeName)) + 'lhelp.exe';
4951 LHelpConnector1.AutoRegister:=True;
5052 end
5153 Else
5254 mnuHelpMain.Enabled := False;
5355End;
5456
5557Procedure TForm1.Button1Click(Sender: TObject);
5658Begin
5759 If mnuHelpMain.Enabled Then
5860 ShowHelpOrErrorForKeyword('','test/Main.html');
5961 //ShowTableOfContents; (Not implemented for TCHMHelpDatabase)
6062End;
6163```
6264
6365## HTML
6466
6567LCL提供两个组件来使用HTML文件获取帮助:[[THTMLHelpDatabase]]和[[THTMLBrowserHelpViewer]]。 为查看HTML帮助,查看lazarus示例:examples/helphtml/htmlhelp1.lpi。
6668
6769### 为你的应用程序设置HTML帮助
6870
6971![Lazarus help items](/wiki-images/7/7e/LazHtmlHelp.jpg) 添加HTML帮助到你的应用程序是很容易的:
7072
7173- 在一个窗体上放置一个**THTMLHelpDatabase**。
7274- 设置**AutoRegister**为 true 。
7375- 设置**KeywordPrefix**为**html/** 。它意味着所有关键字都必须以字符串*html/*为开头。
7476- 设置**BaseURL**为**<file://yourhelp/>**。这将在子文件夹*yourhelp*中搜索HTML文件。你可以具体指定完整的路径(像:*<file:///usr/lib/yourhelp/>*)或者一个URL(像:*<http://www.yoursite.com/>*)。
7577
7678- 在窗体上放置一个**THTMLBrowserHelpViewer**。这个组件可以启动用户的默认浏览器。
7779- 设置**AutoRegister**为 true 。
7880
7981### 创建一个帮助条目
8082
8183- 现在创建子文件夹*yourhelp*,并创建一个html页面 *yourhelp/edit1.html*。如果是网站,帮助页应该是可使用的:*<http://www.yoursite.com/edit1.html>*。
8284- 在一个窗体上放置一个TEdit。
8385- 设置**HelpType**为*htKeyword*
8486- 设置**HelpKeyword**为*html/edit1.html*
8587
8688当运行程序时,你可以聚焦于编辑并按`F1`键援引助。在macOS下帮助按键顺序是`Cmd-?` (或 `Cmd+Shift+?`,取决于你的键盘布局)。 注意: 一些窗口管理器、小部件集组合不会将F1传递给LCL。
8789
8890## INF (使用fpGUI的DocView帮助查看器)
8991
9092查看Lazarus论坛中包含的消息和示例项目。[1](http://forum.lazarus.freepascal.org/index.php/topic,27864.msg173887.html#msg173887)
9193
9294It shows a fully working example of an LCL application using [[fpGUI]]'s [DocView help viewer](http://fpgui.sourceforge.net/screenshots_apps.shtml). It shows context sensitive help and general help.
9395
9496例如:
9597
9698- Set focus to a specific control and press `F1`. It will show the help topic for that specific control.
9799- Click the Help button and it will show the help topic for the dialog/form.
98100- Select the "Help -\> Show Help" menu item and it will show the general application help and display the first topic in the help file.
99101
100102## 请参阅
101103
102104- [[Add an Apple Help Book to your macOS app|添加一个苹果系统帮助书到你的macOS应用程序]]
103105
104106## 贡献者和更改
105107
106108- 简体中文版本由 robsean 于 2020-03-09 创建。
107109
108110---
109111*From the Free Pascal wiki, page "Add Help to Your Application/zh CN", as it stood on 2021-02-04 after a change by Robsean, 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).*
110112Category: CHM
111113Category: Help and Docs
112114Category: Tutorials

Back to history