Bonjour,
Merci Ar,-S pour ta reponse!
Malheureusement, je ne vois pas trop le lien avec mon probleme.
Tu me proposes de mettre mes 2 variables obj1 et obj2 dans une map, mais cela ne permet pas de partager une donnee membre entre obj1 et obj2.
Pour que cela soit plus concret, je cree des objets graphe dont la structure de donnees comporte, entre autres, une liste de valeurs, une liste de couleurs, etc...
J'ai besoin que plusieurs graphes puissent avoir le meme jeu de donnees et les memes couleurs, d'ou l'idee d'utiliser des pointeurs de listes, plutot que des listes.
J'ai fait un autre essai en initialisant les listes de obj1 et obj2 avec ChangeCurrentElement().
L'initialisation.fonctionne, mais les listes sont vides pour PB (listsize=0)
J'imagine que PB gere lis listes chainees avec les infos de la liste stoquees quelque part, en 0lus des pointeurs *next et *previous, mais je n'arrive pas a trouver ou en observant la memoire...
Code:
Structure mystruct
id.i
name.s
List lnum.i()
EndStructure
; Declare une liste globale de 10 elements
; initialisés avec les valeurs de 1 a 10
Global NewList glnum.i()
For i=1 To 10
AddElement(glnum())
glnum() = i
Next
ForEach glnum()
Debug "liste globale:"+glnum()
Next
; Declare 2 objets
Define obj1.mystruct
Define obj2.mystruct
; initialise leurs valeurs
obj1\id = 11
obj1\name = "objet 1"
obj2\id = 22
obj2\name = "objet 2"
; fait pointer leur liste vers la liste globale (partagee entre les 2 objets)
;obj1\lnum() = FirstElement(glnum()) ;=> ici erreur, la liste chainee ne contient aucun element
;obj2\lnum() = FirstElement(glnum())
ChangeCurrentElement(obj1\lnum(),FirstElement(glnum())
ChangeCurrentElement(obj2\lnum(),FirstElement(glnum())
Debug "taille liste de obj1:"+ListSize(obj1\lnum()) ;=> 0!!!
ForEach obj1\lnum()
Debug "liste obj1:"+obj1\lnum()
Next
Debug "taille liste de obj2:"+ListSize(obj2\lnum());=> 0!!!
ForEach obj2\lnum()
Debug "liste obj2:"+obj2\lnum()
Next