Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 25-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Me parece que no va a ser tan fácil como usar Sorted porque el ordenamiento se hace como texto y no como números. Eso implica, por ejemplo, que '10' va antes que '2' a pesar de que 2 es menor que 10.

Se me ocurre usar un TStringList auxiliar y su método CustomSort:

Código Delphi [-]
{
  Compara dos valores de una lista

  La función devuelve:
    -1 si List[Index1] es menor que List[Index2]
    0 si List[Index1] es igual a List[Index2]
    1 si List[Index1] es mayor que List[Index2]

  Si alguno de los elementos no es un número entero, la función lanza
  una excepción.
}
function CompareNumbers(List: TStringList; Index1, Index2: Integer): Integer;
var
  N1, N2: Integer;

begin
  if TryStrToInt(List[Index1], N1) and TryStrToInt(List[Index2], N2) then
    if N1 < N2 then
      Result := -1
    else if N1 = N2 then
      Result := 0
    else
      Result := 1
  else
    raise Exception.Create('La lista contiene valores incorrectos');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;

begin
  SL := TStringList.Create;
  try
    // Pasamos los elementos del ListBox a SL
    SL.AddStrings(ListBox1.Items);

    // Ordenamos usando la función de arriba para comparar elementos
    SL.CustomSort(CompareNumbers);

    // Regresamos los elementos al ListBox
    ListBox1.Items := SL;
  finally
    SL.Free
  end;
end;

// Saludos
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problema moviendo en el listbox ramphi Varios 2 10-12-2007 23:39:31
Problema con ListBox Jaiha OOP 2 04-07-2007 17:35:35
Problema con ListBox en Delphi7 jmlifi Varios 5 30-11-2006 00:48:20
problema en listbox ramphi Varios 6 24-08-2006 15:40:46
Problema con ListBox Delphos Varios 3 10-02-2004 17:18:39


La franja horaria es GMT +2. Ahora son las 17:27:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi