je voudrais savoir s'il est possible de une map structurée à partir de son adresse.
L'exemple ci-après n'a aucun sens car on pourrait passer la Map en paramètre de la procédure, mais c'est juste pour expliquer le truc...
Code : Tout sélectionner
Structure Valeurs
Valeur.i
txt.s
EndStructure
Structure Test
Type.b
Val.Valeurs
EndStructure
NewMap MyMap1.Test()
NewMap MyMap2.Test()
AddMapElement(MyMap1(), "Map1")
MyMap1()\Type = 1
MyMap1()\Val\txt = "qqchose"
MyMap1()\Val\Valeur = 5
AddMapElement(MyMap2(), "Map2")
MyMap2()\Type = 2
MyMap2()\Val\txt = "autre"
MyMap2()\Val\Valeur = 7
Procedure Traitement(Type.b)
Shared MyMap1(), MyMap2()
NewMap *pt.Test()
Select Type
Case 1
*pt = @MyMap1()
Case 2
*pt = @MyMap2()
EndSelect
; Traitement
ForEach *pt()
Debug *pt()\Val\Valeur
Next
EndProcedure
Traitement(MyMap1()\Type)
Code : Tout sélectionner
Structure Valeurs
Valeur.i
txt.s
EndStructure
Structure Test
Type.b
Val.Valeurs
EndStructure
Structure MaMap
Map MyMap.Test()
EndStructure
Define M1.MaMap
Define M2.MaMap
AddMapElement(M1\MyMap(), "Map1")
M1\MyMap()\Type = 1
M1\MyMap()\Val\txt = "qqchose"
M1\MyMap()\Val\Valeur = 5
AddMapElement(M2\MyMap(), "Map2")
M2\MyMap()\Type = 2
M2\MyMap()\Val\txt = "autre"
M2\MyMap()\Val\Valeur = 7
Procedure Traitement(Type.b)
Shared M1, M2
*pt.MaMap
Select Type
Case 1
*pt = @M1
Case 2
*pt = @M2
EndSelect
; Traitement
ForEach *pt\MyMap()
Debug *pt\MyMap()\Val\txt
Next
EndProcedure
Traitement(M1\MyMap()\Type)
il est vraiment en mousse cet exemple...