Hola Roman, gracias por tu respuesta.
Por cierto, he visto que había un post igual al mío después de publicar. Y tú mismo lo habías respondido, pero se detalla usar TObjectList (no sé si me trae algún beneficio).
Bueno, voy al grano. Tengo algunas dudas todavía, sin duda es falta de práctica con el lenguaje.
De momento intento hacer esto:
Código Delphi
[-]
type
TItem = record campo1 : double;
campo2 : double;
end;
TLista = TLIST; var
lista : TLista;
begin
lista := TList.Create;
lista.Add(item);
list.Sort(@compararCampo1);
list.Sort(@compararCampo2);
function compararCampo1(Item1, Item2: Pointer): Integer;
begin
if TItem(Item1).campo1 > TItem(Item2).campo1 then
result := 1
else if TItem(Item1).campo1 < TItem(Item2).campo1 then
result := -1
else
result := 0;
end;
function compararCampo2(Item1, Item2: Pointer): Integer;
begin
if TItem(Item1).campo2 > TItem(Item2).campo2 then
result := 1
else if TItem(Item1).campo2 < TItem(Item2).campo2 then
result := -1
else
result := 0;
end;
¿Voy bien encaminado?
Ahora bien, para acceder a los datos tengo problemas con el 'Cast' de tipos, trato de hacer:
Código Delphi
[-]
item := TItem(lista.Items[i]);
y no consigo evitar el error...