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

Lazarus Pascal Discussion :

Problème de balise de compilation [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut 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
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    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
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 234
    Points
    234
    Par défaut
    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

    Nom : Capture d’écran de 2020-02-06 19-25-13.png
Affichages : 222
Taille : 45,0 Ko

    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 éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de linker à la compilation
    Par screeminelle dans le forum C++
    Réponses: 8
    Dernier message: 27/10/2005, 16h20
  2. Réponses: 7
    Dernier message: 27/09/2005, 21h40
  3. [CDT] problème de build et compil (make -k)
    Par Prodejeu dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 02/11/2004, 23h18
  4. [RegEx] problème de balises
    Par Asarnil dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2004, 15h13
  5. [Linux]Problème System.out.println + compiler
    Par Dnx dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/09/2004, 22h05

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