Personnalisation de l'aide F1 dans les applications VCL
Remonter à Appel de l'aide HTML depuis les applications
Le développeur peut explicitement programmer les gestionnaires d'événements OnHelp de l'objet Application et de fiches particulières.
Pour modifier le gestionnaire d'événements OnHelp d'une fiche, ouvrez la fiche dans le Concepteur de fiches.
Puis, dans l'inspecteur d'objets, sélectionnez l'onglet Evénements, localisez l'événement OnHelp et double-cliquez dans la colonne de droite. L'éditeur de code ouvre le fichier avec le code de gestion de la fiche, et place le curseur à l'intérieur du bloc begin … end du code du cadre généré pour le gestionnaire d'événements OnHelp. Le code généré a l'aspect suivant :
function TForm1.FormHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean; begin ... end;
Vous pouvez taper ici votre code de gestion d'aide. Puisque le gestionnaire d'événements TForm1.FormHelp
est la méthode de l'objet Form1 de la classe TForm1, vous pouvez utiliser les fonctionnalités d'aide des objets Form1 et Application. Par exemple, vous pouvez écrire le code comme suit :
function TForm1.FormHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean; begin HelpFile := ExtractFilePath(Application.ExeName) + HelpFile; Application.HelpShowTableOfContents(); CallHelp := False; // True; - to execute the default OnHelp event handler end;
Dans la première ligne, lors de la redéfinition de HelpFile
, vous supposez que le HelpFile
initial contient le chemin relatif de l'exécutable de l'application vers le fichier d'aide local à la fiche Form1. Cette redéfinition garantit que ce fichier d'aide sera toujours correctement localisé par l'application en cours d'exécution.
Application.HelpShowTableOfContents
affiche le sommaire du fichier d'aide CHM défini dans le TForm1.HelpFile
pour la fiche Form1.
Notez que la définition de CallHelp
sur False
indique que le gestionnaire d'événements OnHelp par défaut ne s'exécute pas. Si le gestionnaire d'événements OnHelp par défaut doit s'exécuter après votre gestionnaire d'événements programmé manuellement, vous devez alors définir :
CallHelp := True;
- Remarque : Notez que vous ne pouvez pas utiliser le Application.HelpCommand dans votre code du gestionnaire d'événements OnHelp.
Application.HelpCommand(NativeCommand, Data)
- pour passer les options NativeCommand à la fonction de l'API HTMLHelp native (ou une autre API native). La fonction Application.HelpCommand déclenche l'événement OnHelp sur la fiche active. Par conséquent, l'appel de la fonction HelpCommand à l'intérieur du gestionnaire d'événements OnHelp génère une boucle infinie dans l'événement OnHelp.
- Par conséquent, pour passer les options NativeCommand à la fonction de l'API HTMLHelp, vous devez appeler
IHelpSystem.GetHelpSystem(HelpSystem)
- puis
HelpSystem.Hook(Handle, HelpFile, NativeCommand, Data);
Voir aussi
- Appel de l'aide HTML depuis les applications
- Types d'aide HTML
- Gestion par défaut de l'aide F1 dans les applications VCL
- Affichage de l'aide avec les boutons d'aide
- Association de l'aide avec les commandes de menu
- Affichage de l'aide à propos des commandes de menu sélectionnées
- Utilisation de la propriété Hint pour afficher l'aide contextuelle des objets d'écran
- Interfaces système d'aide
- Utilisation de l'aide dans une application VCL