Sign in Join
Wiki copytemporary

Add Help to Your Application/zh CN: what changed

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

OldNewLine
11LCL带来一个帮助系统,允许你 **为你自己的应用程序来创建帮助**。
22
33## 快速开始
44
5-```
5+```text
66在 examples/helphtml/中打开示例。
77```
88
99演示如何使用HTML帮助控件。只需要拖拽它们到你的项目中。并设置并创建HTML文件。就可以给程序提供HelpKeyword。
1010
1111如果要使用CHM帮助,请参照CHM帮助部分。
1212
1313这里是一个非常好的演示 (chmdemo.zip): <http://forum.lazarus.freepascal.org/index.php/topic,38487.msg261731.html#msg261731>
1414
1515## 帮助基础
1616
1717LCL帮助包含两部分: 帮助数据库和查看器. 帮助数据库包含关键字(ID, node, message, pascal, ...)到帮助页面(或者帮助网页网站,或者...)。 帮助查看器援引帮助数据库来向用户显示帮助信息。
1818
1919- [[THelpDatabase]]管理内容。它可以是HTML页面、或fpdoc XML文、或一个CHM文件、或一个数据库、或任何东西的一个集合。
2020- [[THelpViewer]]是一个显示帮助内容的组件。例如,一个mime类型的text/html查看器可以启动一个网页浏览器。
2121
2222当请求帮助时,LCL询问每个注册的[[THelpDatabase]],并且每个数据库都会返回一个条目列表。 如果返回数个条目,LCL会要求用户来选择一个条目。 接下来LCL或要求数据库来显示条目的帮助。数据库提取帮助内容,并向LCL请求支持mime类型内容的查看器。 最后,查看器显示帮助内容。
2323
2424## CHM
2525
2626上下文相关的CHM应用程序帮助自lazarus1.0和更高版本开始能够使用。
2727
2828一个演示程序,包含演示如何使用CHM和[[lhelp|lhelpCHM]]查看器(默认情况下与IDE帮助使用同一个查看器)来包含上下文相关的帮助。 请查看\${lazarusdir}/components/chmhelp/democontrol/.
2929
3030你可以写你自己的CHM文件,例如,使用古老的Microsoft HTML Workshop,或者使用新的Lazarus chmmaker 工具(位于\$(lazarusdir)/tools/chmmaker)。 你可以使用一个[[TCHMHelpDatabase]]控件,像下面描述的[[THTMLHelpDatabase]]控件。
3131
3232使用CHM系统的优点是一个较小的、独立的帮助文件,而不是多个文件。另一方面,并不是每个系统都默认安装了CHM查看器,因此您可能希望包含lhelp,一个用Pascal编写的CHM查看器,包含在Lazarus源代码(components/chmhelp/lhelp/lhelp.lpi)中。
3333
3434### 使用LHelp
3535
3636- 在你的窗体上放置一个**TLHelpConnector**。
3737- 使用LHelp可执行文件的名称和位置来设置**LHelpPath**。(路径可以是绝对的,也可以是相对于应用程序的目录)
3838- 设置**AutoRegister**为true
3939
4040``` pascal
4141// Example with both chm file and LHelp.exe in Application folder.
4242Procedure TForm1.FormCreate(Sender: TObject);
4343Begin
4444 If FileExists(ChangeFileExt(Application.ExeName, '.chm')) Then
4545 Begin
4646 CHMHelpDatabase1.Filename := ChangeFileExt(Application.ExeName, '.chm');
4747 CHMHelpDatabase1.Keyword := 'test';
4848 CHMHelpDatabase1.AutoRegister:=True;
4949
5050 LHelpConnector1.LHelpPath := IncludeTrailingBackSlash(ExtractFileDir(Application.ExeName)) + 'lhelp.exe';
5151 LHelpConnector1.AutoRegister:=True;
5252 end
5353 Else
5454 mnuHelpMain.Enabled := False;
5555End;
5656
5757Procedure TForm1.Button1Click(Sender: TObject);
5858Begin
5959 If mnuHelpMain.Enabled Then
6060 ShowHelpOrErrorForKeyword('','test/Main.html');
6161 //ShowTableOfContents; (Not implemented for TCHMHelpDatabase)
6262End;
6363```
6464
6565## HTML
6666
6767LCL提供两个组件来使用HTML文件获取帮助:[[THTMLHelpDatabase]]和[[THTMLBrowserHelpViewer]]。 为查看HTML帮助,查看lazarus示例:examples/helphtml/htmlhelp1.lpi。
6868
6969### 为你的应用程序设置HTML帮助
7070
7171![Lazarus help items](/wiki-images/7/7e/LazHtmlHelp.jpg) 添加HTML帮助到你的应用程序是很容易的:
7272
7373- 在一个窗体上放置一个**THTMLHelpDatabase**。
7474- 设置**AutoRegister**为 true 。
7575- 设置**KeywordPrefix**为**html/** 。它意味着所有关键字都必须以字符串*html/*为开头。
7676- 设置**BaseURL**为**<file://yourhelp/>**。这将在子文件夹*yourhelp*中搜索HTML文件。你可以具体指定完整的路径(像:*<file:///usr/lib/yourhelp/>*)或者一个URL(像:*<http://www.yoursite.com/>*)。
7777
7878- 在窗体上放置一个**THTMLBrowserHelpViewer**。这个组件可以启动用户的默认浏览器。
7979- 设置**AutoRegister**为 true 。
8080
8181### 创建一个帮助条目
8282
8383- 现在创建子文件夹*yourhelp*,并创建一个html页面 *yourhelp/edit1.html*。如果是网站,帮助页应该是可使用的:*<http://www.yoursite.com/edit1.html>*。
8484- 在一个窗体上放置一个TEdit。
8585- 设置**HelpType**为*htKeyword*
8686- 设置**HelpKeyword**为*html/edit1.html*
8787
8888当运行程序时,你可以聚焦于编辑并按`F1`键援引助。在macOS下帮助按键顺序是`Cmd-?` (或 `Cmd+Shift+?`,取决于你的键盘布局)。 注意: 一些窗口管理器、小部件集组合不会将F1传递给LCL。
8989
9090## INF (使用fpGUI的DocView帮助查看器)
9191
9292查看Lazarus论坛中包含的消息和示例项目。[1](http://forum.lazarus.freepascal.org/index.php/topic,27864.msg173887.html#msg173887)
9393
9494It 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.
9595
9696例如:
9797
9898- Set focus to a specific control and press `F1`. It will show the help topic for that specific control.
9999- Click the Help button and it will show the help topic for the dialog/form.
100100- Select the "Help -\> Show Help" menu item and it will show the general application help and display the first topic in the help file.
101101
102102## 请参阅
103103
104104- [[Add an Apple Help Book to your macOS app|添加一个苹果系统帮助书到你的macOS应用程序]]
105105
106106## 贡献者和更改
107107
108108- 简体中文版本由 robsean 于 2020-03-09 创建。
109109
110110---
111111*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).*
112112Category: CHM
113113Category: Help and Docs
114114Category: Tutorials

Back to history