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

Langage Delphi Discussion :

XE5, problème de compatibilité de type


Sujet :

Langage Delphi

  1. #1
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 487
    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 487
    Points : 3 120
    Points
    3 120
    Par défaut XE5, problème de compatibilité de type
    Bonjour,

    Je suis sur le tout nouveau XE5 et j'ai des soucis de compatibilité de type.
    Une classe surcharge le TDataset en définissant la procédure GetFieldData mais en utilisant un type "renommé".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TLeType = TValueBuffer;
     
    function GetFieldData(Field: TField; Buffer: TLeType): Boolean; override;
    Dans les anciennes versions de Delphi, ça passait sans problème.
    Aujourd'hui, XE5 râle :

    [dcc32 Erreur] kbmMemTable.pas(3246): E2037 La déclaration de 'GetFieldData' diffère de la déclaration précédente
    Comme j'ai pas trop envie de toucher le source des composants tiers, est-ce qu'il y a une solution pour lui dire de réagir comme avant et de ne pas me casser les pieds avec ça vu que le type est le même ?

    Papy !



    arf ... Faut que je change de lunettes .... C'est pas un problème de type mais un problème de var.

    function GetFieldData(Field: TField; Buffer: TLeType): Boolean; override;

    était compatible avec

    function GetFieldData(Field: TField; var Buffer: TValueBuffer): Boolean; overload; virtual;

    Mais aujourd'hui, si je ne précise pas le var, ça ne passe plus.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Je changerais de composant tiers !
    Soit vers une nouvelle version : kbmMemTable v. 7.30.00 Standard and Professional Edition released - Supports XE4 Win32/Win64/OSX.
    Soit tu abandonnes et retourne vers du standard !

    Tu peux te lancer dans la modification du code à tes risques et périls !
    Tu risque d'avoir bcp de problème, en particulier sur GetFieldData qui assez sensible

    retirer le var change le fonctionnement de la fonction !
    Ce qu'il faut corriger n'est pas forcément la fonction mais les appels qui doivent fournir le nouveau type

    Entre 2007 et XE2
    Par exemple la fonction SetBlobData a évolué pour que l'on utilise un TValueBuffer au lieu d'un Byte*, PByte ou Array of Byte

    Le changement était obligatoire, cela compilait avec un warning mais cela plantait à l'exécution !

  3. #3
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 487
    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 487
    Points : 3 120
    Points
    3 120
    Par défaut
    Passer à la version XE4 me va bien si ça compile pareil en XE5. Le commercial a vendu du XE5 au client pour sa migration de son projet Delphi 2007. Personnellement, j'aurais attendu un peu mais je ne commande pas

    Je vais choper la dernière version en espérant que ça va aller.

    Ce qui m'ennuie un peu, c'est que le site de Component4Developpers ne semble pas trop bien suivi. Une de leurs pages dit d'aller sur www.myC4D.com et le résultat n'est pas du tout celui attendu . Ça me fait un peu peur pour la qualité du produit.

    Merci

Discussions similaires

  1. [XL-2007] Problème de compatibilité de type lors de la compilation
    Par Akhane dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 16/02/2011, 14h38
  2. Problème de compatibilité de types avec Delphi et SQLServer
    Par scrat88 dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/05/2006, 11h31
  3. Problèmes de compatibilité entre sdk 9.0c et geforce 2/4
    Par Francky033 dans le forum DirectX
    Réponses: 2
    Dernier message: 01/10/2004, 14h22
  4. problème de compatibilité de .lib
    Par projet_chu dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/11/2003, 17h05
  5. help!! problème de compatibilité ascendante
    Par valfredr dans le forum XMLRAD
    Réponses: 5
    Dernier message: 16/06/2003, 16h15

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