Hola desde unos dias venia con la idea de poder implementar Records con las listas genericas que nos proporciona la unit fgl, anduve viendo varios posts en algunos heredaban de la clase de Tlist en otros creaban punteros a Records para poder insertarlos en la lista, hasta que llege a un post del foro de lazarus donde encontre una solucion mas acorde a lo que queria en este link:
http://forum.lazarus.freepascal.org/...?topic=20108.0
Pero me obligaba a crear otra unit en modo delphi para poder implementar la lista de records en lo personal me siento raro estar utilizando el modo delphi en una unit y el modo objfpc en el mismo proyecto hasta que llege ha esta solucion.
Código Delphi
[-]{$mode objfpc}{$H+}
{$modeswitch advancedrecords}
uses
Classes,fgl;
type
TPersona =Record
nombre:String;
edad:Byte;
class operator =(const p1,p2:TPersona):Boolean;
end;
class operator TPersona.=(const p1, p2: TPersona): Boolean;
begin
Result:=(p1.nombre=p2.nombre) and (p1.nombre=p2.nombre)
end;
Type
TListaPersona=specialize TFPGList;
var
lista:TListaPersona;
p1:TPersona;
begin
p1.nombre:='Joses Rene';
p1.edad:=10;
lista:=TListaPersona.Create;
lista.Add(p1);
WriteLn(lista[0].nombre);
WriteLn(lista[0].edad);
lista.Free;
ReadLn;
end.
El problema de la listas genericas de TFPGList es que para los records se necesita sobrecargar el operador "=" pero en los records tipicos no se permite hacer la sobrecarga asi que solo tenemos que activar el modo advancedrecords que permite sobrecargar operadores y anadir funciones si se quiere.
Bueno solo queria mostrar esta forma de implementar las listas de records ya que en espanol casi no encontre nada, haber si alguien le sirve, si alquien conoce una mejor forma de hacerlo espero lo mencione.
Saludos....