@grabiller
you can use your structure "Element" with a pointer-list,
You can manage the memory of the data itself, and attach the address in the LinkedList:
Code: Select all
Procedure AttachElement(List *Pointer(), *Element)
AddElement(*Pointer())
*Pointer() = *Element
EndProcedure
Procedure ExtractElement(List *Pointer())
Protected *Element = *Pointer()
DeleteElement(*Pointer())
ProcedureReturn *Element
EndProcedure
Structure Element
Long.l
Float.f
String.s
EndStructure
Procedure NewElement(Long.l, Float.f, String.s)
Protected *Buffer.Element = AllocateMemory(SizeOf(Element))
*Buffer\Long = Long
*Buffer\Float = Float
*Buffer\String = String
ProcedureReturn *Buffer
EndProcedure
Global NewList *Element()
*A = NewElement(123, #PI, "Hello")
*B = NewElement(456, #E, "World!")
AttachElement(*Element(), *B)
AttachElement(*Element(), *A)
*C.Element = ExtractElement(*Element())
Debug *C\String
*C.Element = ExtractElement(*Element())
Debug *C\String
This example can be extended.
You can add a Pointer-Map, to get an element by his "Name".
Or you can add a Pointer-Array, to get an element by his index.