Recensement des objets de système d'aide

De RAD Studio
Aller à : navigation, rechercher

Remonter à Interfaces système d'aide


Les objets de système d'aide qui implémentent ICustomHelpViewer, IExtendedHelpViewer, ISpecialWinHelpViewer et IHelpSelector doivent être recensés avec le gestionnaire d'aide afin que celui-ci communique avec ces objets.

Pour recenser les objets de système d'aide avec le gestionnaire d'aide, vous devez :

  • Recenser la visionneuse d'aide.
  • Recenser le sélecteur d'aide.

Recensement des visionneuses d'aide

L'unité qui contient l'implémentation de l'objet de système d'aide doit utiliser System.HelpIntfs. Une instance de l'objet doit être déclarée dans la section var de l'unité d'implémentation.

La section initialization de l'unité d'implémentation doit assigner la variable d'instance et la passer à la fonction System.HelpIntfs.RegisterViewer. RegisterViewer est une fonction globale simple exportée par l'unité HelpIntfs, qui prend en argument un ICustomHelpViewer et renvoie un System.HelpIntfs.IHelpManager. Le IHelpManager doit être stocké pour un usage ultérieur.

Par exemple, la bibliothèque VCL fournit l'unité Vcl.HtmlHelpViewer qui implémente la visionneuse d'aide basée sur la visionneuse d'aide Windows HTMLHelp. Pour de plus amples informations sur la fonction HTMLHelp, voir la bibliothèque MSDN. La section initialization de l'unité Vcl.HtmlHelpViewer crée l'instance de la visionneuse d'aide.

HelpViewer := THTMLHelpViewer.Create;

Ici, le constructeur THTMLHelpViewer.Create crée en interne l'objet visionneuse d'aide HelpViewerIntf. La classe THTMLHelpViewer est définie en interne dans la section implementation de l'unité Vcl.HtmlHelpViewer. La classe THTMLHelpViewer implémente toutes les interfaces de HelpIntfs requises pour la visionneuse d'aide. L'objet créé est enregistré dans la variable HelpViewer. La ligne suivante appelle la fonction System.HelpIntfs.RegisterViewer globale et passe à cette fonction l'objet visionneuse d'aide HelpViewerIntf créé :

HelpIntfs.RegisterViewer(HelpViewerIntf, HelpViewer.FHelpManager);

RegisterViewer recense la visionneuse d'aide créée et renvoie le gestionnaire d'aide HelpViewer.FHelpManager. Par la suite, la fonction System.HelpIntfs.GetHelpSystem globale peut être appelée à partir d'autres unités pour accéder aux méthodes d'aide de la visionneuse d'aide recensée. De cette façon, vous pouvez obtenir l'accès aux implémentations de toutes les méthodes déclarées dans l'interface System.HelpIntfs.ICustomHelpViewer (et les autres interfaces de HelpIntfs) et qui sont implémentées dans la classe THTMLHelpViewer.

Le code C++ correspondant, pour recenser la visionneuse d'aide traitée, peut ressembler au code suivant :

 void InitServices()
 {
     THelpImplementor GlobalClass;
     Global = dynamic_cast<ICustomHelpViewer*>(GlobalClass);
     Global->AddRef;
     HelpIntfs::RegisterViewer(Global, GlobalClass->Manager);
 }
 #pragma startup InitServices

Recensement des sélecteurs d'aide

L'unité contenant l'implémentation d'objet doit utiliser Fiches VCL. Une instance de l'objet doit être déclarée dans la section var de l'unité d'implémentation.

La section initialization de l'unité d'implémentation doit recenser le sélecteur d'aide par le biais de la propriété HelpSystem de l'objet Application global :

 Application.HelpSystem.AssignHelpSelector(myHelpSelectorInstance)
 Application->HelpSystem->AssignHelpSelector(myHelpSelectorInstance)

Cette procédure ne renvoie pas de valeur.

Voir aussi