Comment chercher un vecteur par une fonction dans deux unites differantes
abidcha
Messages postés8Date d'inscriptionjeudi 1 janvier 2004StatutMembreDernière intervention28 janvier 2004
-
28 janv. 2004 à 23:18
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
29 janv. 2004 à 19:30
Bonjour
J’ai deux unites 1 et 2. Unite 1 utilise unite 2. Unite 1 appele l’une des fonctions de unite 2 (getVecteurDeUnite2). Je veux savoir comment l’unite 1 doit l’appeler pour chercher un vecteur.
J’ai fait le code suivant :
Unite 1 :
Procedure Z();
Var :
vecteur : array of double;
begin
vecteur := unite2.getVecteurDeUnite2();
end;
Unite 2 :
Type :
vecteur : array of double;
…
function getVecteurDeUnite2() : vecteur;
begin
…
end;
L’erreur se produit dans unite 1 dans vecteur := unite2.getVecteurDeUnite2(); en me disant types incompatibles (malgre que les deux sont array of double;)
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201333 29 janv. 2004 à 19:30
Je ferai remarquer qu'il serait bon de respecter un minimum les conventions de notation.
Dans ton code, il devient difficile de s'y retrouver si l'on déclare Vecteur du type Vecteur :
var
Vecteur: Vecteur;
Il est fortement recommandé d'utiliser la notation :
var
Vecteur: TVecteur;
Dans Unit2 :
interface
type
TVecteur= array of double;
function getVecteurDeUnite2() : TVecteur;
implementation
function getVecteurDeUnite2() : TVecteur;
begin
//
end;
Dans Unit1 :
uses Unit2;
{$R *.dfm}
Procedure Z();
Var
//cette fois, on déclare en utilisant le même type que celui
//défini dans Unit2
vecteur : TVecteur;
begin
vecteur := getVecteurDeUnite2();
end;
Et là, no problem, ça compile nickel. En agissant ainsi, on s'assure que si le type TVecteur défini dans Unit2 change, la variable tableau déclarée dans Unit1 suivra.