Bonjour,
J'ai développé un programme (Lazarus 4.4.2 - W7) qui fonctionne correctement et qui dispose de 3feuilles (form1 - form2 - form3). J'ai aussi construit une aide HTML qui est censée s'ouvrir par un appui sur la touche F1. Pour ce faire :
J'ai déposé dans chacune des feuilles un contrôle THTMLHelpDatabase ( Nom pour la feuille 1 : HTMLDB_AidL ) et un contrôle THTMLBrowserViewer (nom pour la feuille 1 : HTMLBr_Aide) que j'ai paramétrés correctement pour AutoRegister (True) et KeyWordPrefix (Choix Htmlm/).
J'ai aussi renseigné convenablement les propriétés de la feuille 1 pour ce qui est de HelpType et HelpKeyword.
J'ai placé l'ensemble des répertoires et fichiers de l'aide HTML dans un répertoire que j'ai appelé DocHTML
Le problème est le suivant :
J'ai dans le code de chaque feuille mis une instruction d'accès au chemin de l'aide par pour la feuille 1 sur la procédure création de la feuille :
J'ai reconduit ce m^me ensemble d'instructions pour une prodédure Form.Activate
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 procedure TF_Lanc.Dir_CreeOuvreEnter(Sender: TObject); begin Try HTMLDB_aidl.BaseURL:= 'file://' + ExtractFilePath(Application.ExeName) + 'DocHtml\' ; Except ShowMessage ('Désolé, l''aide n''est pas disponible pour cette feuille à l''ouverture du pgm !') ; end; end;
Pour les feuilles 2 et 3 j'ai mis simplement l'instruction d'accèsSur la procédure d'activation de la feuille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TF_Lanc.Dir_CreeOuvreEnter(Sender: TObject); begin HTMLDB_aide.BaseURL:= 'file://' + ExtractFilePath(Application.ExeName) + 'DocHtml\' ; end;
Lorsque je lance le programme, si j'appuie sur F1 pour la feuille qui s'ouvre au lancement ( les deux autres étant masquée) j'ai en retour une erreur qui me signale que l'aide existe mais que l'ouverture est impossible.
En fait c'est le chemin de l'aide qui est erroné dans le message et la référence n'est pas faite au bon THTMLHelpDatabase (***_Aide au lieu de ***_AidL).
Le message signale : The HelpDatabase "HTMLDB_Aide was unable to find file "D:/Ap_Lazarus/Gene_AD/Introduction.html" alors que l'aide est située dans le répertoire D:/Ap_Lazarus/Gene_AD/DocHtml comme le demande la commande d'accès à l'aide dans la procédure formCreate .
On y remarque que l'aide est recherchée dans le répertoire où se trouve l'exe de l'application et non pas dans son sous-répertoire DocHtml et que la référence est faite à une THTMLHelpDatabase qui n'est pas encore activée !!??
Le meilleur ou le plus bizarre est que si je passe à la feuille 2 (en faisant fonctionner le programme) et que j'appelle l'aide HTML cela fonctionne bien et idem pour la feuille 3. Mais La cerise sur la gâteau est que, si je reviens à la feuille 1 (un bouton me permet cela dans le progrrame et que j'actionne la touche F l'aide s'affiche sans aucun Problème !!!!!
Comment mettre fin à ce casse-tête, tout en gardant , si possible, l'aide dans un sous-répertoire de celui qui contient l'exe de l'application, ne serait-ce que par élégance.
Merci
Cordialement
RO
Partager