Bonjour
Déjà, désolé pour l'intitulé du post mais je voyais vraiment pas quoi mettre

Voila j'ai un probleme d'affectation et j'aimerais bien comprendre pourquoi.
J'utilise Delphi 2005 Perso, je cré un petit composant.

J'ai declarer un type perso dans la partie interface (juste apres les uses)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
uses ....
Type 
      TVecteur = record
             Debut : TPoint;
             Fin : TPoint;
      end;
[...]
Mon composant contient une collection.
Dans la partie Item je declare

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Private
    MaFleche : TVecteur
 
Published
    property Fleche : TVecteur read MaFleche Write SetMaFleche;
Dans ma partie composant je declare
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Etapes : TEtapes (ma collection)
Et c'est la que ca se complique quand j'utilise Etapes
Si je fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
UneFleche : TVecteur;
Etapes[I].Fleche := UneFleche
Ca pose aucun probleme.
Par contre si je fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
UnPoint : TPoint;
Etapes[I].Fleche.debut := UnPoint
A la compilation Delphi s'arrete sur Etapes[I].Fleche.debut := UnPoint et me genere l'erreur suivante E2064 La partie gauche n'est pas affectable

Je comprend ce qu'implique ce message d'erreur mais je ne comprend pas pourquoi il est generé ici, je peux acceder a Fleche mais pas a une de ces composante. J'ai eu ce probleme a plusieur reprise, notement au passage de Etapes[I].Fleche.debut en parametre Var a une procedure.
Edit: Le message d'erreur est alors E2197 Un objet constante ne peut être passé comme paramètre Var /edit

J'ai lu sur un autre forum une personne ayant un probleme similaire et la reponse qui lui a ete donné etait que les declaration dans son type etaent peut etre pas affectable ... mais je comprend pas pourquoi.

Merci pour les explications.
A++
Qwaz