Muchas gracias a los 2, lo he implementado utilizando el TObjectlist, y va perfectamente (por cierto, lo que comenta Roman también se me había pasado a mí por la cabeza al ver la respuesta de Lepe
).
Lo único que no entiendo muy bien es la función de ordenación que ha puesto Lepe:
Código Delphi
[-]function OrdenaFecha(a: Pointer; b: Pointer): Integer;
begin
if TCliente(a).Fecha > TNota(b).DAtos.Fecha then
Result := 1
else if TCliente(a).Fecha < TNota(b).DAtos.Fecha then
Result := -1
else
Result := 0;
end;
¿No debería ser así?:
Código Delphi
[-]function OrdenaFecha(a: Pointer; b: Pointer): Integer;
begin
if TCliente(a).Fecha > TCliente(b).Fecha then
Result := 1
else if TCliente(a).Fecha < TCliente(b).Fecha then
Result := -1
else
Result := 0;
end;
Teniendo en cuenta que la definición de TCliente es la que ha sugerido Roman, es decir:
Código Delphi
[-]type TCliente = class(Tobject)
public
Nombre, Direccion: String;
Fecha: TDateTime;
end;