Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
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
  #2  
Antiguo 10-03-2010
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
Cita:
Empezado por Neftali Ver Mensaje
(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.
Neftali, puedes ahorrar unos pasos si usas el método CustomSort de TStringList. A este método le pasas como parámetro una función que compara dos valores. De esta manera te evitas el rellenar con ceros.

// Saludos
Responder Con Cita
  #3  
Antiguo 11-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
Thumbs up

Cita:
Empezado por roman Ver Mensaje
Neftali, puedes ahorrar unos pasos si usas el método CustomSort de TStringList. A este método le pasas como parámetro una función que compara dos valores. De esta manera te evitas el rellenar con ceros.
Cierto Román.
Y ese sería aun mejor que el comentado antes.
La verdad es que es de esas cosas que sabes que están ahí, pero que nunca usas. Es mi caso, no lo he usado nunca y en este caso simplificaría las cosas.
__________________
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
Respuesta


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
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 16:08:03.


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