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

Lazarus Pascal Discussion :

Problème de balise de compilation


Sujet :

Lazarus Pascal

  1. #1
    Membre éclairé
    Problème de balise de compilation
    Sous Ubuntu 18.0.4 et Lazarus 2.0.6, à la compilation du composant THTMLViewer, j'ai ceci

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
        DevMode: {$if lcl_fullversion >= 1080000} PDeviceModeW {$else} PDeviceMode {$ifend};


    j'ai l'erreur suivante :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    vwPrint.pas(114,47) Error: Identifier not found "PDeviceModeW"


    Ce qui me trouble est que "PDeviceModeW" apparaît en grisé et "PDeviceMode" apparaît en noir. D'ordinaire, c'est la partie en noir qui est prise en considération. Or ici, c'est le contraire.

    Si je change "PDeviceModeW" en "PDeviceMode", la compilation se passe bien. Mais est-ce logique ?

    Cordialement.

    Pierre

  2. #2
    Membre expert
    Salut mis à part un conflit d'unité avec une version antérieur de HTMLViewer, ,ce qui me parait peu probable car ton installation est tout fraîche

    sinon c'est un bug dans le code de HTLMViewer. PDeviceModeW ne doit pas être déclaré donc à voir si sous Windows il compile comme ça. Ce qui voudrait dire qu'il manque un directive de compilation

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {$IFDEF WINDOWS}
      {$if lcl_fullversion >= 1080000} PDeviceModeW {$else} PDeviceMode {$ifend};
    {$ELSE}
      PDeviceMode;
    {$ENDIF}


    A+

    Jérôme
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Membre actif
    Bonsoir,

    Etant sur Ubuntu 18.04 LTS et ayant installé Lazarus 2.0.6 (en téléchargent les fichiers DEB directement en suivant les liens du site lazarus-ide.org en cliquant sur Try DEB par rapport à Debian), j'ai installé HtmlViewer en utilisant OnlinePackageManager (que j'ai installé à partir de Lazarus).

    J'ai trouvé la définition suivante dans HtmlMisc.pas

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {$IFDEF MSWINDOWS}
    {$ELSE}
      PDevMode = PDeviceMode;
     
      TWMDropFiles = packed record
        Msg: Cardinal;
        Drop: THANDLE;
        Unused: Longint;
        Result: Longint;
      end;
    {$ENDIF}


    Dans le fichier vwprint.pas il y a le code suivant :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        {$IFDEF Windows}
        DevMode: PDeviceModeW;
        {$ELSE}
        DevMode: PDeviceMode;
        {$ENDIF}


    Ensuite, toujours dans le même fichier, j'ai :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {$if lcl_fullversion >= 1020000}
          DevMode := PrnDev.DevModeW;
    {$else}
          DevMode := PrnDev.DevMode;
    {$ifend}


    Je n'ai pas réussi à retrouver la ligne :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    {$if lcl_fullversion >= 1080000} PDeviceModeW {$else} PDeviceMode {$ifend};


    Soit je suis nul soit je n'ai pas la même version du composant.

    Le composant HtmlViewer se trouve dans le paquet FrameViewer09 V11.8 ... une copie d'écran de OnlinePackageManager



    Ou alors, je suis complètement à côté de la plaque car ne parlant pas du même composant HtmlViewer et j'en suis désolé par avance

    Je n'ai pas installé d'outils de cross plateforme ou autre (je n'ai que Linux installé nativement sur mon PC car j'en avais marre de Windows donc je suis passé à Linux ).

    En tout cas, à l'installation du package, aucune erreur de compilation et à l'utilisation aucun pb non plus (j'ai juste mis le composant sur une form et compilé) ...

    Bonne soirée.

    Cdt

  4. #4
    Membre éclairé
    Citation Envoyé par inforock Voir le message
    ... Je n'ai pas réussi à retrouver la ligne :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    {$if lcl_fullversion >= 1080000} PDeviceModeW {$else} PDeviceMode {$ifend};


    Soit je suis nul soit je n'ai pas la même version du composant.

    Le composant HtmlViewer se trouve dans le paquet FrameViewer09 V11.8 ...
    Nous n'avons effectivement pas la même version : la mienne est 11.6. Apparemment, de l'eau a coulé sous les ponts entre les deux versions.

    Cordialement.

    Pierre

###raw>template_hook.ano_emploi###