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 :

Erreur de compilation dans le paquet IndiLaz


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut Erreur de compilation dans le paquet IndiLaz
    Bonjour à toutes et à tous,

    Travaillant aujourd'hui avec Lazarus 2.0.6, j'essaie la version 2.0.10.

    En compilant IndyLaz, j'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdMessage.pas(831,17) Error: Operator is not overloaded: "TEncoding" = "TIdMessageEncoding"
    à la ligne 831 du fichier "IdMessage":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        if Encoding = meMIME then
    Une idée du problème ?

    Cordialement.

    Pierre.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 945
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    En regardant ici, je trouve les définitions et code suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    TIdMessageEncoding = (meDefault, meMIME, mePlainText); // ligne 358
     
    TIdMessage = class(TIdBaseComponent)
    //...
    FEncoding: TIdMessageEncoding;
    //...
    property Encoding: TIdMessageEncoding read FEncoding write SetEncoding; // ligne 478
     
    //...
     
    procedure TIdMessage.GenerateHeader;
    //...
      if Encoding = meMIME then // ligne 811
    Je ne vois donc rien là qui justifie l'erreur signalée, qui laisse supposer qu'une propriété Encoding serait dans ton paquet d'un type différent.
    Le curseur sur la variable concernée dans l'EDI devrait te montrer son type et permettre de remonter à sa déclaration pour vérifier la compatibilité, non ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Avec la version 2.0.6 ce même composant IndyLaz se compile sans aucun problème.

    Il me semble avoir déjà été confronté à ce problème de "overload" en passant d'une version à l'autre. Mais je ne m'en souviens plus.

    Cordialement.

    Pierre.

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    J'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Encoding = meMIME then
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Encoding = TEncoding(meMIME) then
    et c'est passé comme une lettre à la poste ???

    Cordialement.

    Pierre.

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 945
    Billets dans le blog
    6
    Par défaut
    Ce message signifie qu'on n'a pas déclaré de surcharge de l'opérateur d'égalité pour indiquer au compilateur comment comparer une variété de carotte (TEncoding) et une variété de chou (TIdMessageEncoding) !
    Comme ce sont 2 énumérations, le transtypage passe et fonctionne pour peu qu'ils soient de même taille et dans le même ordre.
    Pour comprendre pourquoi ils ne sont pas du même type dans ton paquet, reste à vérifier où pointent les déclarations et si l'ordre des uses n'appelle pas le meMime de TEncoding déclaré en dernier, plutôt que celui de TIdMessageEncoding.
    Je pense que tu peux aussi résoudre le problème en préfixant la valeur : TIdMessageEncoding.meMime pour le forcer à utiliser le type souhaité.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Je comprends ce que tu veux dire.

    Pour autant, mon paquet IndyLaz étant identique dans les deux cas, le problème vient bien du changement de version ; l'une acceptant et pas l'autre certains types de transtypage ou autre.

    Cordialement.

    Pierre.

Discussions similaires

  1. erreur de compilation dans la création d'un crosstab
    Par longuele dans le forum iReport
    Réponses: 7
    Dernier message: 29/10/2007, 11h13
  2. Erreur de compilation dans Struts (Wsad/Eclips)
    Par machipot dans le forum Struts 1
    Réponses: 8
    Dernier message: 26/07/2007, 17h14
  3. [Simulink][Débutante] Erreur de compilation dans un code
    Par karamellati dans le forum MATLAB
    Réponses: 4
    Dernier message: 30/05/2007, 12h47
  4. erreur en compilation d'un paquet
    Par chtiot dans le forum EDI
    Réponses: 9
    Dernier message: 10/10/2005, 16h59
  5. [Servlet][Compilation] Erreur de compil dans code servlet
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/05/2004, 11h17

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