Composant : référence circulaire AIE !!!

lbensch Messages postés 55 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 10 juin 2010 - 11 oct. 2005 à 14:08
lbensch Messages postés 55 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 10 juin 2010 - 12 oct. 2005 à 08:58
Bonjour j'aimerais savoir si quelqu'un a une idée pour le problème suivant : J'ai créé deux classes qui ont besoin l'une de l'autre tel que :

TClass2 = class;
TClass1 = class(TMaClassParent1)
private
FChamp1 : integer;
FChamp2 : string;
FMaClass2 : TClass2;
public
constructor Create;
property Champ1 : integer read FChamp1 write FChamp1;
property Champ2 : string read FChamp2 write FChamp2;
property MaClass2 : TClass2 read FMaClass2 write FMaClass2;
end;

TClass2 = class(TMaClassParent2)
private
FChamp3 = boolean;
FMaClass1 : TClass1;
public
property Champ3 : boolean read FChamp3 write FChamp3;
property MaClass1 : TClass1 read FMaClass1 write FMaClass1;
end;

Jusque la pas de problème, le soucis viens lorsque je veux mettre une class par unité, du coup je suis obligé de mettre les uses respectif dans l'interface et bien evidemment j'ai un message "référence circulaire" !!!!

Existe-t-il un moyen de déclarer mes classes dans des unités différentes sans le pb de référence circulaire ?

Merci.
A voir également:

3 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
11 oct. 2005 à 18:55
Generalement tu as 2 "uses". Un tout en haut de ton unité et un autre en dessous de implementation.

Declare en haut et l'autre sous implementation.
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
11 oct. 2005 à 19:17
Il y a un oeuf dans la poule, mais la poule est elle-même dans l'oeuf !..... Sacré omelette !

Ken@vo

<hr size="2" width="100%">Code, Code, Codec !

[%3C/body ]
0
lbensch Messages postés 55 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 10 juin 2010
12 oct. 2005 à 08:58
Le problème, c'est que mes deux classes sont dans l'interface afin d'être partagées, donc je suis obligé de mettre les uses dans l'interface, j'ai essayé de mettre un des uses dans l'implémentation mais le compilateur indique qu'il ne connait pas la classe !
0
Rejoignez-nous