Bonjour,
Je vais de présenter mon problème le plus simplement possible.
Il s'agit d'un problème de pointeurs contenus dans une classe pointant sur elle-même.
voilà ce qui nous interesse.
PObj = ^TObj;
TObj = class
private
Links:array of PObj;
end;
A l'initialisation, le tableau Links est rempli avec 4 éléments par exemples, pointant sur 4 objets distincts et differents de l'objet propriétaire.
Le tableau Links est parcouru dans une procedure de la classe Obj.
Jusque la tout fonctionne.
Cependant, quand on ajout un élément au tableau Links, pointant vers un nouvel objet fraichement créé, la procedure plante.
En faite celle-ci accède à des données des objets liés. Et lors de cet accès, une méchante erreur est provoquée (EAccessViolation)
Pourtant ces données sont de simples entiers et ils sont accédés qu'en lecture. De plus cela fonctionne très bien à l'état initiale.
Lors de l'initialisation, 5 objets sont créé, puis, le premier à sont tableau Links modifié en pointant vers les 4 autres.
C'est ensuite, que l'on ajout un 6eme élément, et qu'on ajout le lien vers celui-ci dans le premier.
Voilà, j'espère que vous m'avez compris, et que vous pourrez de donner une indication, car là je ne comprend pas du tout pourquoi il y a cette erreur.
Merci
@+
Fabs
Partager