<?xml version="1.0" encoding="UTF-8"?>
<!--

Documentation for LCL (Lazarus Component Library) and LazUtils (Lazarus 
Utilities) are published under the Creative Commons Attribution-ShareAlike 4.0 
International public license.

https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt
https://gitlab.com/freepascal.org/lazarus/lazarus/-/blob/main/docs/cc-by-sa-4-0.txt

Copyright (c) 1997-2025, by the Lazarus Development Team.

-->
<fpdoc-descriptions>
<package name="lcl">
<!--
====================================================================
HelpIntfs
====================================================================
-->
<module name="HelpIntfs">
<short>Interfaces to define the abstract HelpSystem.</short>
<descr>
<p>
<file>helpintfs.pas</file> contains interfaces to define the abstract 
HelpSystem.
</p>
<p>
You can create your own HelpSystem based on these interfaces, or use the LCL 
help system in <file>lazhelpintf.pas</file>. <var>THTMLHelpDatabase</var> and 
<var>THTMLBrowserHelpViewer</var> in <file>lazhelphtml.pas</file> use the LCL 
help system. To create your own help system, implement a descendant of 
<var>THelpManager</var>.
</p>
<p>
<file>helpintfs.pas</file> is part of the Lazarus Component Library 
(<b>LCL</b>).
</p>
<p>
Author: Mattias Gaertner
</p>
</descr>

<!-- unresolved type references -->
<element name="Classes"/>
<element name="SysUtils"/>
<element name="LCLProc"/>

<element name="EHelpSystemException">
<short>Exception raised for Help system errors.</short>
<descr>
<p>
All help-specific errors should use this Exception type.
</p>
</descr>
<seealso/>
</element>

<element name="TShowHelpResult">
<short>Represents result codes returned by THelpManager.</short>
<descr>
<p>
<var>TShowHelpResult</var> is an enumerated type with values that represent 
result codes for help requests using <var>THelpManager</var>. It is also the 
type returned from convenience methods like <var>ShowTableOfContents</var>, 
<var>ShowHelpForKeyword</var>, <var>ShowHelpForPascalContexts</var>, et. al.
</p>
</descr>
<seealso>
<link id="THelpManager"/>
</seealso>
</element>
<element name="TShowHelpResult.shrNone">
<short>No help result available (help error).</short>
</element>
<element name="TShowHelpResult.shrSuccess">
<short>Help request successfully completed.</short>
</element>
<element name="TShowHelpResult.shrCancel">
<short>Help request was canceled.</short>
</element>
<element name="TShowHelpResult.shrDatabaseNotFound">
<short>Help database was not found.</short>
</element>
<element name="TShowHelpResult.shrContextNotFound">
<short>Help database found, but the context was not found.</short>
</element>
<element name="TShowHelpResult.shrViewerNotFound">
<short>No Help viewer registered for this format.</short>
</element>
<element name="TShowHelpResult.shrHelpNotFound">
<short>No Help found for the keyword or directive.</short>
</element>
<element name="TShowHelpResult.shrViewerError">
<short>Help viewer could not display a help node.</short>
</element>
<element name="TShowHelpResult.shrSelectorError">
<short>No help node(s) found for the help selector.</short>
</element>

<element name="TShowHelpResults">
<short>
Set type used to store values from the TShowHelpResult enumeration.
</short>
<descr/>
<seealso/>
</element>

<element name="THelpDatabaseID">
<short>Identifier used to represent a Help database.</short>
<descr>
<p>
<var>THelpDatabaseID</var> is an alias for the <var>String</var> type.
</p>
<p>
THelpDatabaseID is the type used to implement the 
<var>THelpQuery.HelpDatabaseID</var> property.
</p>
</descr>
<seealso>
<link id="THelpQuery.HelpDatabaseID"/>
</seealso>
</element>

<element name="THelpQuery">
<short/>
<descr/>
<errors/>
<seealso/>
</element>

<element name="THelpQuery.FHelpDatabaseID"/>

<element name="THelpQuery.Create">
<short>Constructor for the class instance.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpQuery.Create.TheHelpDatabaseID">
<short/>
</element>

<element name="THelpQuery.HelpDatabaseID">
<short/>
<descr/>
<seealso/>
</element>

<element name="THelpQueryTOC">
<short/>
<descr/>
<errors/>
<seealso/>
</element>

<element name="THelpQueryContext">
<short/>
<descr/>
<errors/>
<seealso/>
</element>

<element name="THelpQueryContext.FContext"/>

<element name="THelpQueryContext.Create">
<short>Constructor for the class instance.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpQueryContext.Create.TheHelpDatabaseID">
<short/>
</element>
<element name="THelpQueryContext.Create.TheContext">
<short/>
</element>

<element name="THelpQueryContext.Context">
<short/>
<descr/>
<seealso/>
</element>

<element name="THelpQueryKeyword">
<short/>
<descr/>
<errors/>
<seealso/>
</element>

<element name="THelpQueryKeyword.FKeyword"/>

<element name="THelpQueryKeyword.Create">
<short>Constructor for the class instance.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpQueryKeyword.Create.TheHelpDatabaseID">
<short/>
</element>
<element name="THelpQueryKeyword.Create.TheKeyWord">
<short/>
</element>

<element name="THelpQueryKeyword.Keyword">
<short/>
<descr/>
<seealso/>
</element>

<element name="THelpQuerySourcePosition">
<short/>
<descr/>
<errors/>
<seealso/>
</element>

<element name="THelpQuerySourcePosition.FFilename"/>
<element name="THelpQuerySourcePosition.FSourcePosition"/>

<element name="THelpQuerySourcePosition.Create">
<short>Constructor for the class instance.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpQuerySourcePosition.Create.TheHelpDatabaseID">
<short/>
</element>
<element name="THelpQuerySourcePosition.Create.TheFilename">
<short/>
</element>
<element name="THelpQuerySourcePosition.Create.SrcPos">
<short/>
</element>

<element name="THelpQuerySourcePosition.Filename">
<short/>
<descr/>
<seealso/>
</element>

<element name="THelpQuerySourcePosition.SourcePosition">
<short/>
<descr/>
<seealso/>
</element>

<element name="THelpQueryPascalContexts">
<short/>
<descr/>
<errors/>
<seealso/>
</element>

<element name="THelpQueryPascalContexts.FContextLists"/>

<element name="THelpQueryPascalContexts.Create">
<short>Constructor for the class instance.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpQueryPascalContexts.Create.TheHelpDatabaseID">
<short/>
</element>
<element name="THelpQueryPascalContexts.Create.TheFilename">
<short/>
</element>
<element name="THelpQueryPascalContexts.Create.SrcPos">
<short/>
</element>
<element name="THelpQueryPascalContexts.Create.ContextLists">
<short/>
</element>

<element name="THelpQueryPascalContexts.ListOfPascalHelpContextList">
<short/>
<descr/>
<seealso/>
</element>

<element name="THelpQueryMessage">
<short/>
<descr>
<p>
THelpQueryMessage is a THelpQuery descendant which contains a query for 
messages, like the compiler warnings and errors.
</p>
<p>
WholeMessage is a string with the complete message.
</p>
<p>
MessageParts contains Name/Value pairs prepared by the IDE. Common names and 
values in the property include:
</p>
<dl>
<dt>Stage</dt>
<dd>
Indicates what part of the build process the message belongs to. Common 
values are 'FPC', 'Linker' or 'make'.
</dd>
<dt>Type</dt>
<dd>
For FPC: 'Hint', 'Note', 'Warning', 'Error', 'Fatal', 'Panic', 'Compiling', 
'Assembling', For make: ?. For Linker: ?.
</dd>
<dt>Line</dt>
<dd>An integer with the line number as given by FPC (in brackets).</dd>
<dt>Column</dt>
<dd>An integer with the column number as given by FPC (in brackets).</dd>
<dt>Message</dt>
<dd>The message text without other parsed items.</dd>
</dl>
<p>
<b>Example:</b>
</p>
<p>
Message written by FPC:
</p>
<code>unit1.pas(21,3) Warning: unit buttons not used</code>
<p>
Results in:
</p>
<code>
Stage=FPC
Type=Warning
Line=21
Column=3
Message=unit buttons not used
</code>
</descr>
<seealso/>
</element>

<element name="THelpQueryMessage.FMessageParts"/>
<element name="THelpQueryMessage.FWholeMessage"/>

<element name="THelpQueryMessage.Create">
<short>Constructor for the class instance.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpQueryMessage.Create.TheHelpDatabaseID">
<short/>
</element>
<element name="THelpQueryMessage.Create.TheMessage">
<short/>
</element>
<element name="THelpQueryMessage.Create.TheMessageParts">
<short/>
</element>

<element name="THelpQueryMessage.Destroy">
<short>Destructor for the class instance.</short>
<descr/>
<errors/>
<seealso/>
</element>

<element name="THelpQueryMessage.WholeMessage">
<short/>
<descr/>
<seealso/>
</element>

<element name="THelpQueryMessage.MessageParts">
<short/>
<descr/>
<seealso/>
</element>

<element name="THelpQueryClass">
<short/>
<descr/>
<errors/>
<seealso/>
</element>

<element name="THelpQueryClass.FTheClass"/>

<element name="THelpQueryClass.Create">
<short>Constructor for the class instance.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpQueryClass.Create.TheHelpDatabaseID">
<short/>
</element>
<element name="THelpQueryClass.Create.AClass">
<short/>
</element>

<element name="THelpQueryClass.TheClass">
<short/>
<descr/>
<seealso/>
</element>

<element name="THelpManager">
<short>
Defines a help manager used to display a help query or a table of contents.
</short>
<descr>
<p>
<var>THelpManager</var> is a <var>TObject</var> descendant which defines a 
help manager. It provides methods used to display help for specific help 
query types, or a help table of contents. It also provides methods used to 
display/handle error messages.
</p>
<p>
On its own, THelpManager is not particulary useful. All of the methods return 
the shrHelpNotFound help result. They are, however, declared as 
abstract/virtual and should be implemented/overridden in a descendent class 
which provides support for a specific help format like HTML, CHM, INF, or 
other content type.
</p>
</descr>
<seealso>
<link id="#lcl.lazhelpintf.THelpDatabases">THelpDatabases</link>
</seealso>
</element>

<element name="THelpManager.DoHelpNotFound">
<short>
Performs actions when help is not available in the help manager.
</short>
<descr>
<p>
<var>DoHelpNotFound</var> is a <var>TShowHelpResult</var> class function used 
to perform actions when help cannot be displayed using the help manager 
instance. It sets the help result and error message when the help file, 
query, or context is not available (or implemented) in the help manager. The 
default implementation sets the return value to <var>shrHelpNotFound</var>, 
and sets ErrMsg to 'Help not found'.
</p>
<p>
DoHelpNotFound is called from help manager methods which display a given help 
type.
</p>
</descr>
<seealso/>
</element>
<element name="THelpManager.DoHelpNotFound.Result">
<short/>
</element>
<element name="THelpManager.DoHelpNotFound.ErrMsg">
<short>
Error message displayed when help is not available in the help manager.
</short>
</element>

<element name="THelpManager.ShowTableOfContents">
<short>Displays the Help Table of Contents for the help manager.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowTableOfContents.Result">
<short>Help display result code.</short>
</element>
<element name="THelpManager.ShowTableOfContents.ErrMsg">
<short>
Error message displayed when the return value is not shrSuccess.
</short>
</element>

<element name="THelpManager.ShowError">
<short>Not implemented in THelpManager.</short>
<descr>
<p>
Abstract virtual method which must be implemented in a descendent class.
</p>
</descr>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowError.ShowResult">
<short/>
</element>
<element name="THelpManager.ShowError.ErrMsg">
<short/>
</element>

<element name="THelpManager.ShowHelpForQuery">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowHelpForQuery.Result">
<short/>
</element>
<element name="THelpManager.ShowHelpForQuery.Query">
<short/>
</element>
<element name="THelpManager.ShowHelpForQuery.AutoFreeQuery">
<short/>
</element>
<element name="THelpManager.ShowHelpForQuery.ErrMsg">
<short/>
</element>

<element name="THelpManager.ShowHelpForContext">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowHelpForContext.Result">
<short/>
</element>
<element name="THelpManager.ShowHelpForContext.Query">
<short/>
</element>
<element name="THelpManager.ShowHelpForContext.ErrMsg">
<short/>
</element>

<element name="THelpManager.ShowHelpForKeyword">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowHelpForKeyword.Result">
<short/>
</element>
<element name="THelpManager.ShowHelpForKeyword.Query">
<short/>
</element>
<element name="THelpManager.ShowHelpForKeyword.ErrMsg">
<short/>
</element>

<element name="THelpManager.ShowHelpForPascalContexts">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowHelpForPascalContexts.Result">
<short/>
</element>
<element name="THelpManager.ShowHelpForPascalContexts.Query">
<short/>
</element>
<element name="THelpManager.ShowHelpForPascalContexts.ErrMsg">
<short/>
</element>

<element name="THelpManager.ShowHelpForSourcePosition">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowHelpForSourcePosition.Result">
<short/>
</element>
<element name="THelpManager.ShowHelpForSourcePosition.Query">
<short/>
</element>
<element name="THelpManager.ShowHelpForSourcePosition.ErrMsg">
<short/>
</element>

<element name="THelpManager.ShowHelpForMessageLine">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowHelpForMessageLine.Result">
<short/>
</element>
<element name="THelpManager.ShowHelpForMessageLine.Query">
<short/>
</element>
<element name="THelpManager.ShowHelpForMessageLine.ErrMsg">
<short/>
</element>

<element name="THelpManager.ShowHelpForClass">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowHelpForClass.Result">
<short/>
</element>
<element name="THelpManager.ShowHelpForClass.Query">
<short/>
</element>
<element name="THelpManager.ShowHelpForClass.ErrMsg">
<short/>
</element>

<element name="THelpManager.ShowHelpFile">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowHelpFile.Result">
<short/>
</element>
<element name="THelpManager.ShowHelpFile.Filename">
<short/>
</element>
<element name="THelpManager.ShowHelpFile.Title">
<short/>
</element>
<element name="THelpManager.ShowHelpFile.MimeType">
<short/>
</element>
<element name="THelpManager.ShowHelpFile.ErrMsg">
<short/>
</element>

<element name="THelpManager.ShowHelp">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="THelpManager.ShowHelp.Result">
<short/>
</element>
<element name="THelpManager.ShowHelp.URL">
<short/>
</element>
<element name="THelpManager.ShowHelp.Title">
<short/>
</element>
<element name="THelpManager.ShowHelp.MimeType">
<short/>
</element>
<element name="THelpManager.ShowHelp.ErrMsg">
<short/>
</element>

<element name="HelpManager">
<short/>
<descr>
<p>
<var>HelpManager</var> is a <var>THelpManager</var> variable with the unit 
global singleton for the class instance. Its value is assigned by the Lazarus 
IDE when the LCL Help System is initialized. LCL applications can call 
<var>CreateLCLHelpSystem</var> in <file>LazHelpIntf</file>.
</p>
</descr>
<seealso/>
</element>

<element name="ShowTableOfContents">
<short>Display the Help table of contents.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowTableOfContents.Result">
<short/>
</element>
<element name="ShowTableOfContents.ErrMsg">
<short/>
</element>

<element name="ShowHelpOrErrorForContext">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpOrErrorForContext.Result">
<short/>
</element>
<element name="ShowHelpOrErrorForContext.HelpDatabaseID">
<short/>
</element>
<element name="ShowHelpOrErrorForContext.HelpContext">
<short/>
</element>

<element name="ShowHelpForContext">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpForContext.Result">
<short/>
</element>
<element name="ShowHelpForContext.HelpDatabaseID">
<short/>
</element>
<element name="ShowHelpForContext.HelpContext">
<short/>
</element>
<element name="ShowHelpForContext.ErrMsg">
<short/>
</element>

<element name="ShowHelpOrErrorForKeyword">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpOrErrorForKeyword.Result">
<short/>
</element>
<element name="ShowHelpOrErrorForKeyword.HelpDatabaseID">
<short/>
</element>
<element name="ShowHelpOrErrorForKeyword.HelpKeyword">
<short/>
</element>

<element name="ShowHelpForKeyword">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpForKeyword.Result">
<short/>
</element>
<element name="ShowHelpForKeyword.HelpDatabaseID">
<short/>
</element>
<element name="ShowHelpForKeyword.HelpKeyword">
<short/>
</element>
<element name="ShowHelpForKeyword.ErrMsg">
<short/>
</element>

<element name="ShowHelpForPascalContexts">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpForPascalContexts.Result">
<short/>
</element>
<element name="ShowHelpForPascalContexts.Filename">
<short/>
</element>
<element name="ShowHelpForPascalContexts.SourcePosition">
<short/>
</element>
<element name="ShowHelpForPascalContexts.ListOfPascalHelpContextList">
<short/>
</element>
<element name="ShowHelpForPascalContexts.ErrMsg">
<short/>
</element>

<element name="ShowHelpOrErrorForSourcePosition">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpOrErrorForSourcePosition.Result">
<short/>
</element>
<element name="ShowHelpOrErrorForSourcePosition.Filename">
<short/>
</element>
<element name="ShowHelpOrErrorForSourcePosition.SourcePosition">
<short/>
</element>

<element name="ShowHelpForMessageLine">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpForMessageLine.Result">
<short/>
</element>
<element name="ShowHelpForMessageLine.MessageLine">
<short/>
</element>
<element name="ShowHelpForMessageLine.MessageParts">
<short/>
</element>
<element name="ShowHelpForMessageLine.ErrMsg">
<short/>
</element>

<element name="ShowHelpOrErrorForMessageLine">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpOrErrorForMessageLine.Result">
<short/>
</element>
<element name="ShowHelpOrErrorForMessageLine.MessageLine">
<short/>
</element>
<element name="ShowHelpOrErrorForMessageLine.MessageParts">
<short/>
</element>

<element name="ShowHelpFile">
<short>Displays a Help file with the given file name and MIME type.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpFile.Result">
<short/>
</element>
<element name="ShowHelpFile.Filename">
<short/>
</element>
<element name="ShowHelpFile.Title">
<short/>
</element>
<element name="ShowHelpFile.MimeType">
<short/>
</element>
<element name="ShowHelpFile.ErrMsg">
<short/>
</element>

<element name="ShowHelpFileOrError">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpFileOrError.Result">
<short/>
</element>
<element name="ShowHelpFileOrError.Filename">
<short/>
</element>
<element name="ShowHelpFileOrError.Title">
<short/>
</element>
<element name="ShowHelpFileOrError.MimeType">
<short/>
</element>

<element name="ShowHelp">
<short>Display a Help file with the give URL and MIME type.</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelp.Result">
<short/>
</element>
<element name="ShowHelp.URL">
<short/>
</element>
<element name="ShowHelp.Title">
<short/>
</element>
<element name="ShowHelp.MimeType">
<short/>
</element>
<element name="ShowHelp.ErrMsg">
<short/>
</element>

<element name="ShowHelpOrError">
<short/>
<descr/>
<errors/>
<seealso/>
</element>
<element name="ShowHelpOrError.Result">
<short/>
</element>
<element name="ShowHelpOrError.URL">
<short/>
</element>
<element name="ShowHelpOrError.Title">
<short/>
</element>
<element name="ShowHelpOrError.MimeType">
<short/>
</element>

<topic name="HelpDisplay-HowItWorks">
<short>Displaying Help (How It Works).</short>
<descr>
<ul>
<li>
Start the help system, if not already started.
</li>
<li>
Search all appropriate help Databases for the given context. If multiple 
contexts fit, a help selector is shown and the user chooses one.
</li>
<li>
Calls the help Database to show the context. The help Database will search 
for an appropriate help viewer and start the application.
</li>
</ul>
</descr>
<seealso/>
</topic>

</module>
<!-- HelpIntfs -->
</package>
</fpdoc-descriptions>
