{$codepage utf8} {$mode objfpc} Uses sysutils,classes; Type TCadenas=class(TCollectionItem) public Cad:ansistring; procedure Assign(source:TPersistent);override; End; procedure TCadenas.Assign(source:TPersistent); Begin if Source is TCadenas then cad := TCadenas(Source).cad else inherited Assign(Source); End; Var coleccion01:TCollection; aux:TCadenas; i:byte; Begin Writeln('Coleccion 01'); coleccion01:=TCollection.create(TCadenas); for i:=0 to 5 do Begin aux:=TCadenas.create(coleccion01); aux.cad:='coleccion 01 '+intTostr(i) End; aux:=TCadenas(coleccion01.items[5]); //marcamos el objeto que queremos extraer aux.cad:='*'+aux.cad+'*'; for i:=0 to coleccion01.Count-1 do Writeln('[',i:2,']',TCadenas(coleccion01.items[i]).cad); aux:=TCadenas.create(nil); aux.Assign(coleccion01.items[5]); coleccion01.delete(5); Writeln('Coleccion 01'); for i:=0 to coleccion01.Count-1 do Writeln('[',i:2,']',TCadenas(coleccion01.items[i]).cad); Writeln('aux = ',aux.cad); coleccion01.free End.