IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

utilisation d'un fichier d'aide .chm sur un systeme 64 bits


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 9
    Points : 8
    Points
    8
    Par défaut utilisation d'un fichier d'aide .chm sur un systeme 64 bits
    j'ai suivi ce qui a été dit dans : http://svaillant.developpez.com/delp...?page=page_III concernant l'appel d'aide d'un fichier .chm;
    j'ai intégré les unités hh.pas, hh_funcs.pas et D6OnHelpFix.pas et j'ai implémenté la fonction helphook comme ca été dit;
    cela marche trés bien sur un système 32 bits;
    mais comment faire pour un système 64 bits?
    ou doit je modifier? dans la fonction helphook?
    ou y a t'il autre chose a faire (unité a intégrer..!)

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 502
    Points : 3 133
    Points
    3 133
    Par défaut
    Quel problème cela pose-t-il ?
    Un système 64 bits prend en charge les appels en 32 bits.

    Mais je n'ai peut-être pas saisi le vrai problème ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    la fonction par example :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HtmlHelp(0, PChar('MonFichierHelp.chm'), HH_DISPLAY_TOC, 0);
    fonctionne sous XP 32 bits mais sous Windows seven 64 bits elle génère un message d'erreur type violation d'accés;
    voila ce qui a été dit dans le tutoriel dont l'adresse est dans mon 1er message:
    ///Implémentez la fonction HelpHook de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function TfrmMain.HelpHook(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;
    begin
      CallHelp := False; //Désactivation des appels à l'aide 16-bit
      //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-bit
      result := true;
    end;
    Votre fonction créée, il faut maintenant rediriger tous les appels à l'aide 16-bit vers l'aide 32-bit. Pour cela, placez-vous sur la form principale (frmMain) et implémenter la procédure FormCreate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    procedure TfrmMain.FormCreate(Sender: TObject);
    begin
      //Redirection des appels à l'aide 16-bit 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;
    ///
    voila donc je sais pas si le problème réside dans ces lignes de code!

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 015
    Points : 2 085
    Points
    2 085
    Par défaut Appel de l'aide
    Bonjour,

    Une demo complète ici : http://delphi.developpez.com/telecha...ation-a-Delphi
    Il y a :
    - la création de l'aide chm qui n'est l'objet de la question,
    - le code complet pour l'intégration et l'appel de de l'aide pour D7 et XE,
    - en plus le fichier d'aide de l'appli détaille tout cela tout cela.

    Quelques copier / coller devraient permettre de résoudre le problème

    PS : L'appli a été testée notamment sous Windows 8.1 64 bits

Discussions similaires

  1. Utilisation des fichiers d'aide .Chm
    Par ThierryAIM dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2011, 16h28
  2. [XSLT]Fichier d'aide CHM/HLP sur XTL/XSTL ?
    Par domiq44 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 31/10/2007, 14h23
  3. Réponses: 11
    Dernier message: 04/01/2006, 18h32
  4. Lire et décoder un fichier d'aide CHM
    Par bob2553 dans le forum Outils
    Réponses: 6
    Dernier message: 22/06/2005, 20h21
  5. Réponses: 3
    Dernier message: 09/06/2005, 18h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo