Hola de nuevo y gracias a los dos por la ayuda.
Estoy ya implementando vuestros consejos, aunque como el código estaba muy extendido ya, me queda todavía, y no se aún si funciona. Me estoy planteando tener una función/ o método 'ordenar', que trate de manera aislada el TList para ordenar y luego devuelva una copia del TList pero pasado a 'array or record' que es lo que usa el resto de partes del programa.
Además, todavía me quedan algunas dudas...
1. Sobre la llamada a ordenar:
Código Delphi
[-]
list.Sort(@compararCampo1);
¿Puedo pasar en vez de una función, un método de clase?
Also como '@self.compararCampo1'. Para no tener funciones sueltas. He probado pero no he conseguido salvar el error 'variable expected'.
2. Sobre el destruir items de la lista.
Cita:
Empezado por roman
Código Delphi [-]
begin
form I := 0 to Lista.Count - 1 do
Dispose(Lista[i]);
end;
|
Roman, en vez de lo que comentas ¿no sería mejor lo siguiente?:
Código Delphi
[-]
lista.Clear;
begin
form I := 0 to Lista.Count - 1 do
Dispose(Lista.items[i]);
end;
También tengo otro problema, y es que tengo que almacenar cada Tlist que proceso en un array (array of TList). Resulta que cada vez que voy a procesar un nuevo TList, lo libero (reseteo), y pierdo lo que tenia almacenado en el array de TList de anteriores posiciones. Pero para no mezclar, esto lo trataré en un nuevo Post si es necesario.
Saludos.