--------------------------------------------------- Local oColl oColl = CreateObject('Mycollection') oColl.Add("Goffy", "Key1") Activate Screen Clear ? oColl.Item("Key1").name && OK ? oColl.Item("KEY1").name && Error ... even if i overwrite Item Event 8((((( Return Define Class Mycollection As Collection NumOfItems = 0 Function Init() This.AddProperty('objects[1]', '') EndFunc Function Add(eItem, cKey, eBefore, eAfter) This.NumOfItems = This.NumOfItems + 1 Dimension This.objects(This.NumOfItems, 2) This.Objects[This.NumOfItems, 1] = cKey This.Objects[This.NumOfItems, 2] = CreateObject('Empty') AddProperty(This.Objects[This.NumOfItems, 2], 'Key', cKey) AddProperty(This.Objects[This.NumOfItems, 2], 'Name', eItem) EndFunc Function Item(eIndex) If Vartype(eIndex) = 'C' Local eIndex eIndex = Ascan(This.Objects, eIndex, 1, -1, 1, 15) && ASCAN with case Insensitive If !Empty(eIndex) Return This.Objects[eIndex, 2] Else Return DoDefault(eIndex) Endif Else Return This.Objects[eIndex, 2] Endif Return EndDef