Ver Mensaje Individual
  #2  
Antiguo 09-03-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Reputación: 15
BrunoBsso Va por buen camino
Que yo sepa no hay un método así para los TStrings (los items de los TListBox son del tipo TStrings).
Lo único que te puedo recomendar es este procedimiento que acabo de hacer para tu pregunta:
Código Delphi [-]
procedure OrdenNumerico(var L:TListBox; Menor_A_Mayor:boolean = True);
{Si Menor_A_Mayor es TRUE, se guardan de menor a mayor}
{Si es FALSE, se guardan de mayor a menor}
var
  I,J,NumI,NumJ,Indice:Integer;
  Temp:String;
begin
  for I := 0 to L.Count - 1 do begin
    Indice:=I;
    for J := I+1 to L.Count - 1 do begin
      NumI:=StrToInt(L.Items.Strings[Indice]);
      NumJ:=StrToINt(L.Items.Strings[J]);
      case Menor_A_Mayor of
        TRUE:
          begin
            if (NumJ < NumI) then
              Indice:=J;
          end;
        FALSE:
          begin
            if (NumJ > NumI) then
              Indice:=J;
          end;
      end; //End CASE
    end; //End FOR J
    Temp:=L.Items.Strings[i];
    L.Items.Strings[i]:=L.Items.Strings[Indice];
    L.Items.Strings[Indice]:=Temp;
  end; //End FOR I
end;
Solamente ordena números. Si tu TListBox contiene palabras, va a tirar error.
Le mandás como primer argumento el TListBox que quieras ordenar (ListBox1, ListaNumeros, como se llame) y como segundo argumento le mandás TRUE si querés que los ordene de menor a mayor (ascendente) o FALSE si querés que los ordene de mayor a menor (descendente).
Saludos!

Última edición por BrunoBsso fecha: 09-03-2010 a las 09:06:21. Razón: Se creaba mal el código en la página
Responder Con Cita