Conception d'un fichier d'aide HTML et intégration dans une application Delphi

Stéphane Vaillant

Conception d'un fichier d'aide HTML et intégration dans une application Delphi.

Une application complète implique d'une part une bonne ergonomie de ce logiciel et d'autre part un support d'information pratique et convivial. Parmi ces supports, le système d'aide tient une place prépondérante, car il facilite grandement l'utilisation d'une application en permettant à l'utilisateur d'accéder à tout moment aux informations dont il a besoin.

L'aide HTML, dont l'extension est CHM (Compiled HTML file), est le format standard d'aide depuis l'apparition du 32 bits dans le système Windows. Le but de ce tutoriel est de vous expliquer comment construire facilement un fichier d'aide HTML et comment l'intégrer à une application développée sous Delphi 6.

Afin d'atteindre notre but, nous allons suivre les étapes suivantes.

- Titre : Conception d'un fichier d'aide HTML et intégration dans une application Delphi

- Auteur : Stéphane Vaillant

- Parution : 25 octobre 2001

- Mise à jour : 31 décembre 2019

- Licence : Copyright ® 2003 Stéphane Vaillant. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Brève description du format d'aide HTML

- II. Conception d'un fichier d'aide au format CHM

- II-A. Analyse du projet et préparation de la structure de votre aide HTML

- II-A-1. Réunir toutes les informations devant figurer dans les rubriques

- II-A-2. Définir l'organisation de votre système d'aide

- II-A-3. Concevoir les différentes rubriques d'aide

- II-B. Création du fichier d'aide CHM avec Microsoft HTML Help Workshop

- II-B-1. Création du projet d'aide

- II-B-2. Conception du sommaire de l'aide

- II-B-3. Conception de l'index de l'aide

- II-B-4. Compilation et test de votre fichier CHM

- III. Intégration du fichier d'aide CHM conçu dans une application Delphi

- III-A. Principes généraux de l'utilisation de l'aide avec Delphi 6

- III-B. Mise en pratique pas à pas de l'intégration du fichier d'aide dans Delphi 6

- III-B-1. Unités à intégrer à votre projet

- III-B-2. Gestion de l'ouverture de l'aide CHM par appui sur la touche 'F1'

- III-B-3. Gestion de l'ouverture de l'aide CHM par clic sur un élément de menu

- IV. Ouvrages et adresses Internet utiles

I - Brève description du format d'aide HTML

Avec l'apparition du 32 bits dans le système d'exploitation Windows, Microsoft a développé un nouveau système d'aide basé sur le format HTML (Hypertext Language Markup) : le format CHM (Compiled HTML file).

Vous pouvez voir ici des captures d'écran d'aide au format HLP et d'aide au format CHM.

Il est vrai que la création d'un fichier d'aide sous l'ancien format d'aide, HLP, basé sur des fichiers RTF (Rich Text Format), pouvait s'avérer laborieuse… L'apparition du nouveau format d'aide a supprimé énormément de contraintes comme le montre le tableau ci-dessous :

COMPARAISON ENTRE LE FORMAT CHM ET LE FORMAT HLP

FORMAT CHM

FORMAT HLP

Système d'exploitation Windows 32 bits

Système d'exploitation Windows 16 bits

Utilisation de scripts

Utilisation de macros

Petite taille du fichier compilé

Taille plus importante du fichier compilé

Contrôle total sur les tableaux et les textes (taille, police…)

Ne supporte pas les structures de tableaux compliquées et les textes écrits en petite police

Supporte de nombreuses fonctionnalités du HTML (CSS, JavaScript…)

Ne nécessite pas de connaissances particulières dans la mise en place de signets ou de mots-clés avant la compilation du fichier

Nécessite la connaissance de nombreuses spécifications quant à la mise en place de mots-clés nécessaires à la création d'un index

Peut contenir un onglet de favoris afin de conserver les rubriques les plus utilisées

Pas de conservation de favoris

L'utilisation des onglets de sommaire, recherche ou index se fait indépendamment de l'affichage de la rubrique d'aide en cours de lecture

L'utilisation du sommaire, de la recherche ou de l'index nécessite la fermeture de la rubrique d'aide en cours d'affichage

Le défilement automatique (scrolling) est possible dans une rubrique

Le défilement de la page se fait obligatoirement au moyen de la barre verticale prévue à cet effet

Bien que non exhaustif, ce tableau montre bien l'intérêt de choisir le format CHM par rapport à son aïeul. Le nouveau format permet une meilleure interactivité et il est aisément possible de créer un fichier d'aide HTML sans connaissance particulière.

Entrons maintenant dans le vif du sujet : la création de votre premier fichier CHM…

II - Conception d'un fichier d'aide au format CHM

L'objectif de ce tutoriel étant de vous expliquer comment créer ce fichier d'aide et de l'intégrer à votre application, vous allez utiliser un petit programme exemple (les sources sont disponibles en fin de tutoriel). Au moment de créer votre système d'aide, il faut considérer que votre application est déjà en phase finale. Voici le programme que vous allez utiliser pour le tutoriel :

II-A - Analyse du projet et préparation de la structure de votre aide HTML

À l'instar d'un développement logiciel, la conception d'un fichier d'aide nécessite une analyse rigoureuse. Plus votre analyse sera précise, plus votre système d'aide sera intuitif.

Pour créer un système d'aide pour votre application, il faut préalablement :

1. Réunir toutes les informations devant figurer dans les rubriques d'aide ;

2. Définir l'organisation de votre système d'aide ;

3. Concevoir les différentes rubriques d'aide.

II-A-1 - Réunir toutes les informations devant figurer dans les rubriques

La première étape du projet consiste tout simplement à prendre une feuille de papier et à noter en vrac tous les points devant être abordés par le système d'aide. Pour cela, il faut se mettre dans la peau d'un utilisateur découvrant le produit et se demander sur quels points il aura besoin d'informations complémentaires.

Dans votre application, l'utilisateur doit saisir son nom, son prénom, sélectionner sa date de naissance et choisir une couleur. Ce sont donc sur ces points que l'aide devra être développée. Les rubriques devant être conçues pourraient être les suivantes :

- Message de bienvenue

- Historique de l'application

- Utilisation du produit

- Saisie du nom

- Saisie du prénom

- Sélection de la date de naissance

- Choix de la couleur

Pour chaque rubrique, une page HTML devra être élaborée.

II-A-2 - Définir l'organisation de votre système d'aide

En observant les notes prises au brouillon, il est possible de distinguer deux rubriques indépendantes (Message de bienvenue et Historique de l'application) et un chapitre contenant quatre rubriques.

Dès lors, nous pouvons d'ores et déjà définir la structure du sommaire de l'aide. Cette structure sera de la forme :

Message de bienvenue
Historique de l'application
Utilisation du produit
Saisie du nom
Saisie du prénom
Sélection de la date de naissance
Choix de la couleur

Cette structure sera contenue dans le fichier Contents dont l'extension est HHC de votre projet d'aide. Nous verrons plus loin comment le concevoir.

II-A-3 - Concevoir les différentes rubriques d'aide

La création des différentes rubriques d'aide se fait à l'aide de l'éditeur HTML de votre choix. Chaque rubrique () correspond à une page HTML. L'ensemble de votre système d'aide se conçoit comme un site Internet classique.

Afin de vous éviter quelques soucis, voici quelques conseils pratiques.

- Créez un modèle de page (template) et utilisez-le pour la création de toutes vos pages HTML.

- Donnez un titre explicite à chacune de vos pages HTML. Cela vous simplifiera le travail dans le compilateur.

- Si vous insérez des images dans vos pages HTML, utilisez les chemins relatifs par rapport au document et non par rapport à la racine de votre site. En effet, le compilateur ne trouvera pas vos images si vous utilisez des chemins par rapport à la racine de votre site.

- Pensez au format et aux dimensions de vos images, car plus vos images seront imposantes en taille, plus votre fichier CHM sera impressionnant en kilo-octets.

Vous venez de terminer la partie la plus longue de la création d'un fichier d'aide CHM !!!
Maintenant que vos pages HTML sont terminées, il ne vous reste plus qu'à élaborer le projet sous Microsoft HTML Help Workshop.

II-B - Création du fichier d'aide CHM avec Microsoft HTML Help Workshop

II-B-1 - Création du projet d'aide

Un fichier d'aide HTML, dont l'extension est CHM nécessite la création de quatre fichiers distincts :

- un fichier dont l'extension est HHP : il s'agit du fichier 'projet' ;

- un fichier dont l'extension est HHC : il s'agit du fichier 'sommaire' ;

- un fichier dont l'extension est HHK : il s'agit du fichier 'index' ;

- un fichier dont l'extension est H : il s'agit du fichier où seront stockés les identifiants et les alias permettant des appels depuis Delphi.

Pour créer le fichier 'projet', il vous suffira de lancer Microsoft HTML Help Workshop, de faire |File|-|New| et de choisir 'Project' dans la liste proposée :

Un assistant apparaît vous demandant de spécifier les propriétés de votre projet :

- le premier écran vous demande s'il s'agit d'une conversion d'un projet WinHelp (16 bits) ;

- le second écran vous demande d'attribuer un nom à votre projet ;

- le troisième écran vous demande si vous avez déjà créé le fichier 'sommaire', le fichier 'index' et les fichiers HTML ;

- en l'occurrence, vous avez déjà conçu les pages HTML, cochez la troisième case ;

- validez vos paramètres en cliquant sur le bouton [Terminer] ;

La fenêtre principale du compilateur apparaît.

Ne vous inquiétez pas, nous allons étudier ce compilateur au fur et à mesure du tutoriel… :-)

Avant toute chose, vous allez créer un nouveau fichier 'sommaire' et un nouveau fichier 'index'.
Pour cela, cliquez tout d'abord sur l'onglet 'Contents', la boîte de dialogue suivante apparaît :

Choisissez la première option et nommez, pour les besoins de ce tutoriel, votre fichier 'sample.hhc'.
Enfin, cliquez sur l'onglet 'Index' pour faire apparaître la boîte de dialogue ci-après dans laquelle vous choisirez la première option et vous nommerez le fichier 'sample.hhk'.

Pour les étapes suivantes, je vous laisse définir les options à sélectionner dans les différents onglets des fenêtres de paramétrage. Seules seront indiquées les étapes à suivre pour que votre fichier soit réussi.

Revenez sur le premier onglet ('Project') et cliquez sur le troisième bouton situé sur la gauche pour définir un style de fenêtre pour votre système d'aide.

Cliquez ensuite sur le premier bouton situé sur la gauche pour modifier les options du projet.

Créez maintenant le fichier dont l'extension est H pour stocker les identifiants et les alias permettant les appels depuis votre application Delphi. Ouvrez le bloc-notes de Windows et saisissez les lignes de définition sous le modèle suivant :

#define ALIAS HELPCONTEXT

Un ALIAS est un mot-clé unique qui permettra d'appeler une rubrique de l'aide.
Un HELPCONTEXT est un identifiant unique qui permettra aussi d'appeler une rubrique d'aide.

Le processus d'appel d'une rubrique d'aide peut se définir schématiquement de la manière suivante :

Ainsi, chaque rubrique devra correspondre à une ligne de définition, comme le montre l'écran suivant :

Désormais, vous pouvez cliquer sur le quatrième bouton situé sur la gauche afin de définir les alias et inclure le fichier créé dans le projet.

Pour inclure le fichier à l'extension H, cliquez sur le bouton [Header file] et sélectionnez votre fichier :

Pour la création des alias, vous devez cliquer sur l'onglet 'Alias' et créez autant d'alias que ceux qui ont été définis dans le fichier précédent :

La partie 'Project' de votre projet est terminée.

Vous allez maintenant concevoir le sommaire.

II-B-2 - Conception du sommaire de l'aide

Cliquez sur l'onglet 'Contents' afin d'afficher la fenêtre suivante :

Toutes les rubriques seront créées en cliquant sur le bouton 'Insert a page' .
Tous les chapitres seront créés en cliquant sur le bouton 'Insert a heading' .

Commencez par insérer la rubrique 'Bienvenue !'. Pour cela, cliquez sur le bouton d'insertion de page. Dans cette page, il faut :

1. Affecter un nom à la rubrique ;

2. Ajouter l'URL de la page HTML à laquelle elle se réfère ;

3. Valider la saisie en cliquant sur [OK].

Toutes les rubriques seront conçues de la même manière.

La création des chapitres est sensiblement identique, à la différence qu'il n'y a, en général, pas d'ajout de page HTML.

Différentes options sont disponibles dans l'onglet 'Advanced' comme le choix des icônes pour chaque rubrique ou chapitre. Je vous laisse le soin d'étudier ces options…

Pensez à enregistrer votre sommaire régulièrement en cliquant sur le bouton 'Save File' .

Le sommaire est désormais créé. Vous touchez bientôt au but, il ne vous reste qu'à concevoir l'index…

II-B-3 - Conception de l'index de l'aide

Cliquez sur l'onglet 'Index' pour faire apparaître la fenêtre de conception suivante :

Un index est une liste de mots-clés permettant d'afficher une ou plusieurs rubriques.
Afin de bien appréhender ce concept, vous allez créer le mot-clé 'Saisie' qui se réfère à trois rubriques de votre fichier d'aide :

- Saisie du nom ;

- Saisie du prénom ;

- Saisie de la date de naissance.

Cliquez sur le bouton 'Insert a keyword' pour créer votre mot-clé. La fenêtre suivante apparaît :

Pour définir votre index, vous devez :

1. Lui attribuer un nom, en l'occurrence 'Saisie' ;

2. Lui lier une ou plusieurs pages HTML en cliquant sur le bouton [Add] ;

3. Valider la saisie en cliquant sur [OK].

Tous les mots-clés seront conçus de la même façon.

Pensez à enregistrer votre sommaire régulièrement en cliquant sur le bouton 'Save file' .

Et voilà, tous vos fichiers source sont créés, il ne reste plus qu'à compiler votre fichier CHM…

II-B-4 - Compilation et test de votre fichier CHM

Il existe deux méthodes pour lancer la compilation.

- Méthode 1 : cliquez sur le bouton 'Compile HTML file'

situé dans la barre d'outils.
Attention, cette méthode n'enregistre pas automatiquement vos fichiers source, vous devez le paramétrer dans la boîte de dialogue qui apparaît :

- Méthode 2 : revenez sur l'onglet 'Project' et cliquez sur le bouton 'Save all files and compile' . Avec cette méthode, tous vos fichiers seront sauvegardés.

Ces deux méthodes génèrent le fichier d'aide CHM et un journal de compilation dont l'extension est LOG.
Ce journal doit impérativement être parcouru afin de vérifier si votre fichier d'aide ne comporte aucune erreur !!!

Lors du premier lancement de votre fichier d'aide, pensez à tout tester.

- Parcours dans le sommaire.

- Recherche d'un mot.

- Utilisation de l'index.

- Utilisation des favoris.

- Etc.

Félicitations, vous venez de créer votre premier fichier d'aide au format CHM. :-)))

III - Intégration du fichier d'aide CHM conçu dans une application Delphi

III-A - Principes généraux de l'utilisation de l'aide avec Delphi 6

Par défaut, Delphi ne gère pas les appels à l'aide 32 bits, seuls les appels 16 bits sont pris en compte. Sans modification des procédures d'appel, vous ne pourrez donc ouvrir que des fichiers HLP.

Lors d'un appui sur la touche F1, touche par défaut pour ouvrir l'aide, Delphi est informé par Windows du déclenchement d'un message de type WM_HELP (ou autres de la même famille), et vous permet de traiter ce message via le gestionnaire d'évènement OnHelp (propriété dans l'inspecteur d'objet) de type THelpEvent.

type THelpEvent = function (HelpType: THelpType; HelpContext: integer; HelpKeyword: string;
HelpFile: string; var Handled: boolean): boolean of object;
property OnHelp: THelpEvent;

Il est possible de gérer cet évènement au niveau de chaque form (TCustomForm.OnHelp), ou alors globalement au niveau de l'application (TApplication.OnHelp).

Afin de permettre à votre application d'ouvrir des fichiers d'aide 32 bits, il est nécessaire d'implémenter un gestionnaire d'évènement pour l'évènement OnHelp qui permettra de rediriger les appels standards de l'aide vers des appels aux API qui traitent les fichiers CHM 32 bits.

III-B - Mise en pratique pas à pas de l'intégration du fichier d'aide dans Delphi 6

Dans toute cette rubrique, je ne m'attarderai pas sur les portions de code qui sont communes à toute application Delphi, mais je détaillerai les portions de code propres aux appels à l'aide CHM. Ne vous inquiétez pas, les sources livrées avec ce tutoriel sont commentées. ;-)

En début de tutoriel, je vous ai montré l'interface finale du projet 'Sample'. Afin que vous puissiez comprendre les portions de code que je vais vous expliquer, regardez la composition de la form principale nommée 'fMain' :

III-B-1 - Unités à intégrer à votre projet

Delphi 6 n'intégrant pas de bibliothèques de manipulation de fichiers CHM, un groupe de développeurs intéressé par les systèmes d'aide, The Helpware Group a conçu les unités suivantes :

- hh.pas >> Unité contenant toutes les déclarations nécessaires aux appels à l'aide CHM ;

- hh_funcs.pas >> Unité contenant toutes les fonctions d'appels à l'aide CHM.

Ces deux unités sont à intégrer dans la clause uses de votre projet ou de votre unité :

unit fMain;
interface
uses
Windows, ......, hh, hh_funcs;

De plus, Delphi 6 engendrant quelques erreurs de gestion de l'évènement OnHelp, Robert Chandler, membre de The Helpware Group, a développé un correctif (D6OnHelpFix.pas) qu'il faut aussi intégrer à la clause uses de votre projet ou de votre unité :

unit fMain;
interface
uses
Windows, ......, D6OnHelpFix;

III-B-2 - Gestion de l'ouverture de l'aide CHM par appui sur la touche 'F1'

Comme indiqué précédemment, pour ouvrir une aide CHM (32 bits), il est nécessaire d'implémenter un gestionnaire d'évènement pour l'évènement OnHelp qui permettra de rediriger les appels à l'aide 16 bits vers les appels à l'aide 32 bits.

La première étape consiste à créer un gestionnaire d'évènement pour l'évènement OnHelp.

Déclarez la fonction HelpHook dans la clause private de votre unité. Cette fonction doit avoir les mêmes paramètres que la fonction de gestion des appels à l'aide 16 bits :

unit fMain;
interface
...
type
...
private
{Déclarations privées }
function HelpHook(Command: Word; Data: LongInt; var CallHelp: Boolean): Boolean;
public
{Déclarations publiques }
mHelpFile: string; //Variable servant à stocker le chemin du fichier CHM
end;

Implémentez la fonction HelpHook de la manière suivante :

function TfrmMain.HelpHook(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;
begin
CallHelp := False; //Désactivation des appels à l'aide 16 bits
//Test sur le paramètre Command qui permet de savoir le type d'aide à ouvrir
if (Command in [Help_Context]) then
HtmlHelp(0, PChar(mHelpFile), HH_HELP_CONTEXT, Data) //Ouverture de l'aide
else
CallHelp := true; //En cas d'erreur, réactivation des appels à l'aide 16 bits
result := true;
end;

Votre fonction créée, il faut maintenant rediriger tous les appels à l'aide 16 bits vers l'aide 32 bits. Pour cela, placez-vous sur la form principale (frmMain) et implémenter la procédure FormCreate :

procedure TfrmMain.FormCreate(Sender: TObject);
begin
//Redirection des appels à l'aide 16 bits vers notre gestionnaire d'évènement
Application.OnHelp := HelpHook;
//Recherche du chemin du fichier d'aide
mHelpFile := ExtractFilePath(ParamStr(0)) + 'sample.chm';
mHelpFile := ExpandFileName(mHelpFile);
if not FileExists(mHelpFile) then //Déclenché si le fichier d'aide est introuvable
ShowMessage('Le fichier d''aide est introuvable !');
//Vérification de la version de HTML Help installé dans le système
if (hh.HHCtrlHandle = 0)
or (hh_funcs._hhMajVer < 4)
or ((hh_funcs._hhMajVer = 4) and (hh_funcs._hhMinVer < 73)) then
ShowMessage('Vous devez installer la version 1.2 ou supérieure de Microsoft HTML Help !');
end;

Désormais, tous vos appels seront traités par le gestionnaire d'évènement HelpHook.

Du point de vue de l'utilisateur final, cela signifie que, dès qu'il appuiera sur la touche 'F1', c'est votre fichier d'aide CHM qui s'affichera.

Cependant, l'appui sur la touche 'F1' doit pouvoir ouvrir la rubrique d'aide liée au composant dans lequel est situé le curseur de l'utilisateur. En l'occurrence, si l'utilisateur a placé son curseur dans la zone de saisie du nom (edNom) et appuie sur la touche 'F1', il peut s'attendre à voir la rubrique traitant de la saisie du nom.

Pour cela, vous allez utiliser trois propriétés classiques des composants standards, il s'agit des propriétés :

- HelpContext

- HelpKeyword

- HelpType

Revenons un peu en arrière… Lors de la création du fichier d'aide CHM, vous avez créé un fichier nommé sample.h, dans lequel étaient définis des alias et des helpcontext :

Ce sont ces informations que nous allons utiliser dans ces propriétés.

Il existe deux manières d'appeler une rubrique précise en fonction du contexte : on peut appeler l'aide par un identifiant (HelpContext) ou par un mot-clé (HelpKeyword).

Pour appeler la rubrique traitant de la saisie du nom par un identifiant, paramétrez la propriété HelpContext du composant edNom à '1002' qui correspond au numéro attribué dans le fichier sample.h.
Ensuite, vérifiez que la propriété HelpType est bien paramétrée à htContext.

Pour appeler la même rubrique par son mot-clé, paramétrez la propriété HelpKeyword du composant edNom à 'NOM' qui correspond à l'alias attribué dans le fichier sample.h.
Pensez à vérifier que la propriété HelpType est paramétrée à htKeyword.

Mettez à jour ces propriétés pour tous les composants pour lesquels vous avez créé une rubrique d'aide et testez votre application.

L'appui sur la touche 'F1' n'est pas la seule façon d'appeler l'aide… Il est possible de l'appeler à partir d'éléments de menus, c'est l'objet de la rubrique suivante… :-)

III-B-3 - Gestion de l'ouverture de l'aide CHM par clic sur un élément de menu

Dans votre application, vous avez placé un composant de type TMainMenu nommé mmSample pour les besoins du tutoriel. Observez les différents éléments du menu mmSample :

Ces trois éléments du menu '?' sont des éléments que l'on trouve dans la plupart des applications.

Vous allez tout d'abord gérer l'appel au sommaire de l'aide. Pour cela, double-cliquez sur l'élément 'Sommaire de l'aide' et implémentez la procédure de la façon suivante :

procedure TfrmMain.idxSommaireClick(Sender: TObject);
begin
HtmlHelp(0, PChar(mHelpFile), HH_DISPLAY_TOC, 0); //HH_DISPLAY_TOC est l'appel au sommaire
end;

En cliquant sur cet élément, l'onglet 'Sommaire' et la page d'accueil de l'aide apparaissent….

Double-cliquez ensuite sur l'élément 'Index de l'aide' et implémentez la procédure de la manière suivante :

procedure TfrmMain.idxIndexClick(Sender: TObject);
begin
HtmlHelp(0, PChar(mHelpFile), HH_DISPLAY_INDEX, 0); //HH_DISPLAY_INDEX est l'appel à l'index
end;

En cliquant sur cet élément, l'onglet 'Index' et la page d'accueil de l'aide apparaissent…

Enfin, il ne vous reste plus qu'à implémenter la procédure liée à l'élément 'Recherche dans l'aide' du menu.
Attention, pour afficher l'onglet 'Rechercher' de l'aide, il est nécessaire de définir une requête…

procedure TfrmMain.idxRechercheClick(Sender: TObject);
var
q: THHFtsQuery; //Type interne à l'unité hh.pas
begin
//Définition de la requête
with q do
begin
cbStruct := sizeof(q); //Taille de la requête
fUniCodeStrings := false; //mettre à true si toute la chaîne recherchée est de type Unicode
pszSearchQuery := nil; //chaîne recherchée
iProximity := HH_FTS_DEFAULT_PROXIMITY; //Recherche en respectant les mots similaires
fStemmedSearch := false; //mettre à true pour rechercher dans les résultats précédents
fTitleOnly := false; //mettre à true si la recherche se fait uniquement sur les titres de rubriques
fExecute := true; //mettre à true pour exécuter la requête
pszWindow := nil; //type de fenêtre à afficher, ici c'est celle par défaut
end;
HtmlHelp(0, PChar(mHelpFile), HH_DISPLAY_SEARCH, DWORD(@q)); //HH_DISPLAY_SEARCH est l'appel à la recherche
end;

En cliquant sur cet élément, l'onglet 'Rechercher' et la page d'accueil de l'aide apparaissent…

Ce tutoriel est terminé…

Ces quelques éléments devraient vous aider à concevoir des aides au format CHM et d'apporter un côté professionnel à vos applications.

Regardez tout de même la dernière page, elle contient les sources complètes de ce tutoriel et différentes manières d'obtenir des informations complémentaires sur le même sujet…

IV - Ouvrages et adresses Internet utiles

Vous trouverez ci-après différentes informations et utilitaires qui m'ont permis de créer ce tutoriel. Cette liste est bien évidemment non exhaustive… ;-)

UTILITAIRES DE CONCEPTION

Microsoft HTML Help Workshop 1.3

HTML Help Workshop est le compilateur par excellence de fichiers CHM.
Il permet de structurer vos projets et de fabriquer une aide HTML.

SOURCES DELPHI

Delphi 6 OnHelp Fix
développé par R. Chandler & M. van Brakel

Delphi 6 OnHelp Fix permet de capturer tous les évènements d'appel à l'aide non gérés par Delphi.
Le fichier à télécharger contient l'unité concernée, sa documentation et un exemple d'utilisation de ce correctif.

Delphi HTML Kit 1.6
développé par The Helpware Group

Ce kit prévu pour Delphi permet un accès facilité à votre aide HTML.
Ce kit pallie le fait que, par défaut, Delphi ne gère que les aides HLP.

DOCUMENTS

Tanny's HTML Help Workshop Tutorial
conçu par Creative Computing Company

Très très bon tutoriel sur la conception des aides HTML.

SITES INTERNET

The Helpware Group

Excellent site des développeurs qui se sont penchés sur la relation entre Delphi et les aides CHM…

HTML Help Center

Ce site est une référence dans le monde des développeurs d'aides HTML. Vous y trouverez des tutoriels, une FAQ, etc.
Mon seul regret est qu'il ne traite pas de Delphi… :(

Voilà ! Vous avez tout en main pour créer des logiciels dotés d'aides optimisées…

En guise de bonus, je vous offre l'ensemble des informations de ce tutoriel dans le fichier ci-dessous. Vous y trouverez le tutoriel au format PDF, les sources du petit programme Delphi et les sources de l'aide CHM qui l'accompagne… :-)

Je tiens à remercier sincèrement Sylvain James (TeamB-FR) pour son aide (non CHM) précieuse…