Ver Mensaje Individual
  #2  
Antiguo 16-08-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El método Sort de TObjectList recibe como parámetro una función (que tú defines) que le indica cómo debe comparar tus objetos. La función debe devolver un número positivo si el primer objeto es "mayor" que el primero, 0 si son iguales y un número negativo si el primer objeto es "menor" que el segundo.

Te pongo un ejemplo:

Código Delphi [-]
// Clase de los objetos que conforman la lista
TCliente = class
  Nombre: String;
  Telefono: String;
end;

// Función para comparar dos objetos (en este caso, compara los clientes por su nombre)
function ComparaClientes(Item1, Item2: Pointer): Integer;
begin
  if TCliente(Item1).Nombre > TCliente(Item2).Nombre then
    Result := 1 // > 0
  else if TCliente(Item1).Nombre = TCliente(Item2).Nombre then
    Result := 0
  else
    Result := -1 // < 0;
end;

// Ejemplo de uso:
Lista.Sort(ComparaClientes);

Me parece que TObjectList no tiene forma de insertar ordenadamente.

// Saludos
Responder Con Cita