Problème de portée d'une déclaration de type

K0rr1gan Messages postés 13 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 7 septembre 2005 - 10 oct. 2004 à 15:38
cs_mounjetado Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 4 août 2008 - 17 sept. 2007 à 09:40
Bonjour,

j'ai un problème avec le passage d'une variable de type défini ainsi :

Type TArrayOfByte = Array of Byte;

C'est un type que je déclare de la même façon dans deux unités différentes, pourtant lorsque je fait appel à une fonction de la première
unité avec une variable de type TArrayofByte définie dans la deuxième, le compilateur me renvoie une erreur de type : "types incompatibles".

Y a t'il un moyen de définir ce type pour qu'il soit utilisable dans chaque unité sans être redéfini ??

4 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
10 oct. 2004 à 16:45
La réponse est oui : faire la déclaration dans une unité à part qui sera référencée par toutes celles qui en ont besoin.

Il faut absolument éviter de faire une même déclaration dans plusieurs endroits différents.

En ce qui concerne le message "types incompatibles" renvoyé par le compilateur, c'est tout simplement parce qu'il considère que les déclarations de type sont différentes. La solution indiquée ci-dessus résoudra donc le problème.

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
May Delphi be with you
0
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006
22 nov. 2005 à 14:39
Je viens de faire le constat suivant :



Si le type est utilisé pour un paramètre d'une procédure qui est
déclarée dans la partie Interface d'une unité, il est impératif de
déclarer l'unité qui contient la déclaration de type dans la même
partie Interface.



Constat bête je sais, mais que ma bétise serve aux autres.

Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
22 nov. 2005 à 19:17
C'est l'application du principe de base en Pascal qui veut que l'on
soit obligé de déclarer avant de pouvoir utiliser (sauf de très rares
exceptions).

On dira que tu as été victime d'une distraction ennuyeuse et non de la bêtise

<hr color="#008000">Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html
0
cs_mounjetado Messages postés 66 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 4 août 2008
17 sept. 2007 à 09:40
est-il possible d'exporter un type déclaré dans une dll de façon à l'utiliser dans une unité? il me paraît que non, mais je veux bien en avoir le coeur net! sinon, eh bien il ne me restera que la solution de delphiprog, que j'utilisais déjà...
merci pour votre aide

<hr />si Delphi m'était conté...
0
Rejoignez-nous