Bonjour,

je suis en train de créer un fichier xml en delphi.

pour cela j'utilise TObjectList , chaque nœud est un objet de ma TObjectList.

exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<a>
      <b>
            <c />
            <d>
                  <e />
                  <f />
            </d>
      </b>
</a>
Donc les balises b,c,d,e,f font toutes partie de TObjectList, la racine a n'en fait pas partis.
Lorsque je crée un nœud dépendant d'un autre comme je dois passer en référence le nœud parent, donc pour crée le nœud c je dois lui passer en référence le nœud b; jusque la aucun souci j'utilise la méthode last de TObjectList.
Le problème survient avec f ou là je ne peux utiliser la méthode last puisque sinon cela créera un arbre comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
[]
<e>
      <f />
</e>
[]
D'ou ma question comment faire pour avoir la référence de l’occurrence d ?


Autre problème lors de l’exécution de mon code j'ai une violation d’accès à la mémoire lors du passage dans mon destructor qui fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
          destructor Tc_xml.Destroy;
          begin
              Flnode.Free;
 
          end;
j'ai pourtant bien passer la variable OwnsObject à true dans mon constructor :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Flnode.OwnsObjects := True