Recherche
1 connecté

  Actuellement : 1 commentaire

Création des fichiers d'aide au format .CHM et intégration dans Delphi.

dernière mise à jour le : 12/22/03

Création du fichier d'aide avec Microsoft HTML Workshop.

Commencez par télécharger et installer Microsoft HTML Workshop en allant sur le site de Microsoft

 

Principe général

HTML Workshop se sert de pages HTML créé par vous et qui représente le contenu de l'aide elle même. En plus de ces fichiers, HTML Workshop se base sur 4 fichiers spécifiques :

  • Un fichier d'extension HHP : Le projet lui-même.
  • Un fichier d'extension HHC : Le sommaire de l'aide.
  • Un fichier d'extension HHK : L'index de l'aide
  • Un fichier d'extension H : Fichier qui servira à faire le lien entre notre programme Delphi et le fichier d'aide .CHM.

 

Création du fichier projet (HHP)

Le tutorial qui suit va se baser sur un exemple de fichier d'aide. Ce fichier d'aide accompagnera un programme faisant calculatrice (adition et soustraction).

La suite de l'aide suppose que vous avez déjà créé vos pages d'aide HTM (une page par sujet). Pour l'exemple, créez (ou téléchargez dans le zip joint) :

  • Un fichier html d'aide correspondant à ce que vous voudrez voir s'afficher comme aide pour le bouton "+" : "adtion.htm"
  • Un fichier html d'aide correspondant à ce que vous voudrez voir s'afficher comme aide pour le bouton "-" : "soustraction.htm"
  • Un fichier html d'aide correspondant à ce que vous voudrez voir s'afficher comme aide pour l'édit donnant le résultat "resultat.htm"
  • Et un fichier html d'aide donnant la description générale de votre programme.

Dans HTML Workshop, cliquez sur le bouton puis, sélectionnez "Project".

  1. Un assistant vous demande si vous voulez convertir un ancien projet WinHelp. Ne pas prendre cette option et cliquez sur le bouton "suivant"
  2. Entrez le chemin\nom de votre projet. Par exemple "c:\cheminTest\TestAide". Cliquez sur suivant.
  3. L'assistant nous propose d'intégrer nos pages HTML déjà réalisées. Cochez HTML files puis sélectionnez les pages à intégrer.

Cliquez sur suivant puis sur Terminer.

Vous vous retrouvez dans la fenêtre principale avec pour affichage, ce qui correspond à notre fichier hhp

 

Création du fichier sommaire (HHC)

  • Cliquez sur l'onglet "Contents".
  • Laissez cochée la case "create a new contents file" et cliquez sur OK
  • Donnez lui un chemin\nom de fichier par exemple "SommaireTestAide.hhc"

 

Création de l'arborescence du sommaire :

Image de ce que l'on cherche à obtenir dans le sommaire de notre fichier d'aide :

 

  • Cliquez sur le bouton puis sur le bouton "add..." de façon à sélectionner une des pages HTML précédemment indiquées.
  • Entrez le texte qui doit aparaitre dans l'arborescence dans la case "Entry title"
  • Pour entrer le chapitre Fonctionalités, cliquez sur le bouton et remplissez la case "Entry title".
  • Continuez jusqu'à obtenir votre arborescence :

Création du fichier Index (HHK)

  • Cliquez sur l'onglet "Index".
  • Laissez cochée la case 'create a nex index file' et cliquez sur OK.
  • Donnez lui un chemin\nom de fichier par exemple "IndexTestAide.hhc"
  • Pour ajouter un mot clef, cliquez sur le bouton
  • Entrez votre mot clef dans la case "keyword" et cliquez sur Add pour sélectionner les rubriques à lui associer

 

Compilation et visualisation du résultat

  • Dans l'onglet projet, cliquez sur le bouton . Bien lire le fichier LOG qui s'affiche dans la fenêtre de droite afin de voir les éventuelles erreurs.
  • Le compilateur a créé un fichier .CHM dans le dossier de votre projet. Double-cliquez dessus pour le lancer et le tester.

Pour télécharger tous les fichiers : cliquez ici

 

 

 

Intégration des fichiers d'aide CHM dans une application Delphi

Création du fichier .H

Rappelez vous quand nous avions parlé des fichiers composant un projet, nous avions parlé de 4 fichiers spécifiques :

  • Un fichier d'extension HHP : Le projet lui-même.
  • Un fichier d'extension HHC : Le sommaire de l'aide.
  • Un fichier d'extension HHK : L'index de l'aide
  • Un fichier d'extension H : Fichier qui servira à faire le lien entre notre programme Delphi et le fichier d'aide .CHM.

Le fichier d'aide actuel TestAide.chm a été compilé sans ce fameux fichier.H. Il faut maintenant l'intégrer à notre projet.

  • A l'aide de n'importe quel éditeur de texte, créez dans le même dossier que le projet un fichier texte nommé par exemple TestAide.h
  • Remplissez ce fichier avec les lignes suivantes :
	#define GENERALITE	1000
	#define ADITION		1001
	#define SOUSTRACTION	1002
	#define RESULTAT	1003
  • Sauvez.

 

Intégration au projet du fichier .H

  • Ouvrez votre projet dans Microsoft HTML Help Workshop en doublecliquant sur le fichier projet (ici : TestAide.hhp).
  • Dans l'onglet projet, cliquez sur le bouton
  • Dans l'onglet Map, cliquez sur "Header file..." pour désigner votre fichier TestAide.h
  • Dans l'onglet Alias, en corespondance au texte de chaque ligne du fichier TextAide.h (GENERALITE, ADITION etc...), vous allez indiquer le fichier htm contenant l'aide corespondant à ce mot. Pour cela, cliquez sur le bouton "Edit..." et répondez comme suit :

 

  • Répétez pour les mots ADITION, GENERALITE etc...

Sauvez puis compilez comme vu à la leçon précédente.

 

Utilisation dans un projet DELPHI

  • Ouvrez un nouveau projet.
  • Dans la partie implémentation, ajoutez :
implementation

{$R *.DFM}
const
  HH_HELP_CONTEXT         = $000F;
  HH_DISPLAY_TOPIC        = $0000;

// il existe aussi :
//  HH_DISPLAY_TOC          = $0001;
//  HH_CLOSE_ALL            = $0012;

function HtmlHelp(hwndCaller: HWND;
  pszFile: PChar; uCommand: UINT;
  dwData: DWORD): HWND; stdcall;
  external 'HHCTRL.OCX' name 'HtmlHelpA';

 

  • Ajoutez deux boutons (ici : BitBtnAideAditionClick et BitBtnAideResultatClick) qui servirons à déclencher l'aide sur le chapitre Adition et sur le chapitre Résultat.
  • Implémentez leur évènement OnClick comme suite :
procedure TForm1.BitBtnAideAditionClick(Sender: TObject);
begin
      HtmlHelp(Application.Handle,
      PChar('TestAide.chm'), //PChar est inutile ici mais indispensable
      //si vous remplacez 'TestAide.chm' par une variable contenant cette valeur.
      HH_HELP_CONTEXT,1001);//1001, dans le fichier .H corespond à ADITION 
        //qui lui même, a été mis en correspondance (Alias) avec adition.htm
end;

procedure TForm1.BitBtnAideResultatClick(Sender: TObject);
begin
      HtmlHelp(Application.Handle,
      // là, on montre une autre possibillité : l'appel direct
      PChar('TestAide.chm::/resultat.htm'),
      HH_DISPLAY_TOPIC, 0);
end;
  • Testez en cliquant sur le bouton.

 

Pour télécharger tous les fichiers : cliquez ici

Leçon suivante : Utilisation des .CHM pour une aide contextuelle dasn un programme Delphi