Ver Mensaje Individual
  #2  
Antiguo 16-12-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ale4132.

Un modo simple:
Código Delphi [-]
procedure SortListBox(ListBox: TListBox; Asc: Boolean = True);
var
  i,j: Integer;
  aux: string;
  Change: Boolean;
begin
  with ListBox do
  begin
    Items.BeginUpdate;
    for i:= 0 to Items.Count-2 do
      for j:= i+1 to Items.Count-1 do
      begin
        if Asc then
          Change:= StrToInt(Items[i]) > StrToInt(Items[j])
        else
          Change:= StrToInt(Items[i]) < StrToInt(Items[j]);
        if Change then
        begin
          aux     := Items[i];
          Items[i]:= Items[j];
          Items[j]:= aux;
        end;
      end;
    Items.EndUpdate;
  end;
end;

Llamada ejemplo:
Código Delphi [-]
procedure TForm1.btnSortClick(Sender: TObject);
begin
  SortListBox(ListBox1, CheckBoxDesc.Checked);
end;
Donde la condición de ordenamiento ascendente o descendente depende de la propiedad Checked de un CheckBox.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 17-12-2012 a las 00:38:33.
Responder Con Cita