Connaitre son index dans une TList...

Signaler
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
8 mars 2007
-
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
8 mars 2007
-
ptit problème :

j'ai une objet (TObjet1) qui contient une TList. Cette TList pointe sur des objets (TObjet2).
TObjet1 sait supprimer les TObjet2 de la TList. Mais comment faire pour que TObjet puisse se supprimer lui-même de la TList ?
Pour info TObjet2 connait son parent (TObjet1).

En fait je voudrais savoir comment TObjet2 pourrait connaitre son Index dans la TList ?
Sachant que l'ordre dans la TList peut varier (Ajout, suppression, changement de place... d'un autre TObjet2)

Merci d'avance

PhoenyX

2 réponses

Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
2
Dans les méthode de TObjet2, SELF défini l'adresse de l'objet
Dans TList INDEXOF() donne l'index en fonction de l'objet.

Donc en tout si dans la déclaration de TObjet2 tu ajoutes :
TObjet2= Class (...)
...
Procedure JeMeSupprime;
End;

Procedure TObjet2.JeMeSupprime;
Var index:Integer;
Begin
Index:=MaListe.IndexOf(Pointer(Self));
If Index>=0 Then MaListe.Delete(Index);
End;

Le code ci-dessus devrait fonctionner, tout dépend comment les TObjet2 sont ajoutés à la liste.

--- :sleepy) Nono du Moulin :sleepy) ---
Messages postés
31
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
8 mars 2007

Merci ça marche impec !
PhoenyX