Implémentation de IExtendedHelpViewer

De RAD Studio
Aller à : navigation, rechercher

Remonter à Interfaces système d'aide


System.HelpIntfs.ICustomHelpViewer est seule à fournir un support direct de l'aide par mot clé. Certains systèmes d'aide (spécialement HTMLHelp) opèrent en associant un nombre (appelé ID de contexte) aux mots clés, de manière interne au système d'aide et donc de manière invisible pour l'application. De tels systèmes nécessitent que l'application supporte l'aide par contexte, où l'application invoque le système d'aide avec un nombre plutôt qu'une chaîne, et que le système d'aide effectue la traduction du nombre.

Les applications peuvent communiquer avec les systèmes utilisant l'aide par contexte, en étendant l'objet qui implémente ICustomHelpViewer afin qu'il implémente également System.HelpIntfs.IExtendedHelpViewer. IExtendedHelpViewer prend aussi en charge la communication avec les systèmes d'aide vous permettant d'aller directement aux rubriques de haut niveau au lieu d'utiliser les recherches par mot clé. Le visualiseur intégré WinHelp le fait automatiquement.

IExtendedHelpViewer expose quatre fonctions.

Lorsque l'utilisateur d'une application appuie sur F1, le gestionnaire d'aide appelle

UnderstandsContext(const ContextID: Integer; const HelpFileName: String): Boolean
int __fastcall UnderstandsContext(const int ContextID, UnicodeString HelpFileName)

et le contrôle actif prend en charge l'aide par contexte et non l'aide par mot clé. Comme pour ICustomHelpViewer.UnderstandsKeyword, le gestionnaire d'aide interroge successivement tous les visualiseurs d'aide recensés. Mais, au contraire de ICustomHelpViewer.UnderstandsKeyword, si plusieurs visualiseurs supportent le contexte spécifié, c'est le premier visualiseur recensé et supportant le contexte qui est invoqué.

Le gestionnaire d'aide appelle

DisplayHelpByContext(const ContextID: Integer; const HelpFileName: String)
void __fastcall DisplayHelpByContext(const int ContextID, UnicodeString HelpFileName)

après avoir consulté les visualiseurs d'aide recensés.

Les fonctions de support des rubriques se comportent de la même façon :

UnderstandsTopic(const Topic: String): Boolean
bool __fastcall UnderstandsTopic(const UnicodeString Topic)

est utilisée pour demander aux visualiseurs d'aide s'ils supportent une rubrique correspondant à la chaîne Topic spécifiée.:

DisplayTopic(const Topic: String)
void __fastcall DisplayTopic(const UnicodeString Topic)

est utilisée pour invoquer le premier visualiseur recensé indiquant qu'il peut fournir de l'aide sur cette rubrique.

Voir aussi