Sign in Join
Wiki copytemporary

Add Help to Your Application/zh CN: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

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

Back to history