![]() |
Ordenar un TListBox
¿Cómo puedo ordenar (de menor a mayor numéricamenete hablando y de una forma sencilla) un TListBox que se llena con cadenas que representan números positivos y negativos?
Gracias de antemano. |
la propiedad sorted a true no te sirve?
|
Cita:
// Saludos |
Cita:
|
Wop!
Pues a mi la manera más sencilla que se me ocurre es cargar la lista en un vector de enteros, ordenar el vector y depues recargar la lista. |
Es increíble pero realmente no parece haber manera de hacerlo con el mismo ListBox no quedando más remedio que utilizar algo externo como indica marto. Para facilitar un poco las cosas y no tener que implementar uno mismo el algoritmo de ordenación puede usarse esta técnica que me encontré en una búsqueda por la red:
1. Asignar los elementos de ListBox1.Items a un StringList 2. Usar el método CustomSort del StringList 3. Devolver los elementos al ListBox Quedaría algo así: Código:
function CompareNumbers(List: TStringList; Index1, Index2: Integer): Integer; |
Muchas Gracias por vuestras respuesta.
|
Funciona perfectamente, pero hay que cambiar:
List.CustomSort(CompareNumbers); por List.CustomSort(@CompareNumbers); Muestra (Delphi 7) el aviso de código inseguro al compilar: pero no vamos a pasarlo a .NET. Saludos. P.D.: Para los despitados como yo una nota: TListBox.Sorted:= False; |
La franja horaria es GMT +2. Ahora son las 05:30:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi