No entiendo por qué debe ser un "record". ¿Por qué no una clase? Si tienes Firebird, es mejor clases que registros.
TListaPersonas es precisamente un TObjectList. Siempre se ha usado los arrays dinámicos, pero ya que tenemos la clase mencionada, hagamos uso de ella.
Yo al menos usaría la clase TPersona así:
Código Delphi
[-]
type TPersona = Class(TObject)
public
edad: Integer;
Nombre :string;
apellido, direccion, telefono: string;
end;
var Lista :TObjectList;
p:TPersona;
begin
lista := TObjectlist.create(True);
p := Tpersona.create;
for i:= 0 to 20 do
begin
p:= Tpersona.create;
p.edad := i;
lista.Add(p);
end;
end;
En el foro hay mucho sobre Tobjectlist.
Saludos