Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 09-03-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por bothy Ver Mensaje
...tiene alguna funcion o propiedad asi como sort para ordenar los numeros que balla introduciendo en un listbox .
si en la propiedad sorted del litsbox la activo y me ordena alfabeicamente y yo lo que quisiera saber como le hago para que ordene numericamente.

Si son pocos números y el tema de velocidad no es muy importante, a veces he utilizado un TStringList a modo de intermediario.

(0) Desactivar el orden del ListBox.
(1) Copias todos los números al TSttingList pero formateandolos como cadenas con ceros a la izquierda; 00001, 00023, 00167,...
(2) Mandas ordenar ese StringList, que en este caso los ordena como cadenas, pero con la ordenación numérica correcta.
(3) Un for que los vuelve a copiar al ListBox convirtiéndolos a números.

Ya se no, es nada "sofisticado" pero para 1000, 5000,... números es inmediato.

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  TS:TStringList;
  str:string;
  i, j:Integer;
begin
  TS := TStringList.Create();
  try
    // Recorrer la lista y almacenarlo en la Lista intermedia    
    for i := 0 to (ListBox1.Items.Count - 1) do begin
      Str := DupeString('0', 10) + ListBox1.Items[i];
      Str := Copy(Str, Length(Str) - 10, Length(Str));
      TS.Add(Str)
    end;

    //ordenar
    TS.Sorted := True;

    // Limpiar la original
    ListBox1.Items.Clear;

    // Volver a pasarlos a la original
    for i := 0 to (TS.Count - 1) do begin
      j := StrToInt(TS[i]);
      ListBox1.Items.Add(IntToStr(j));
    end;

  finally
    FreeAndNil(TS);
  end;
end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
 



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
ordenación DBGRId cmm07 Varios 5 14-04-2009 03:14:44
ordenacion Quicksort Samurai JAVA 1 04-06-2007 23:12:21
ordenacion de un array mediante el metodo de la burbuja baby Varios 11 08-05-2007 02:43:55
ordenacion arrays halizia PHP 7 07-02-2007 10:47:03
DbGrid Con Ordenación Rabata Varios 2 14-05-2005 15:26:28


La franja horaria es GMT +2. Ahora son las 12:49:42.


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