Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   ordenar un listview (https://www.clubdelphi.com/foros/showthread.php?t=22384)

munheko 14-06-2005 10:00:34

ordenar un listview
 
Hola a todos,

Tengo una duda sobre la ordenacion de un listview por una columna cualquiera con un dato que es de tipo fecha. he miradoun monton de codigos pero no he sabido sacar nada en claro, y queria preguntaros si hay algun metodo simple mediante el cual pueda ordenar el listview con un dato fecha o hora.

Un saludo y muchas gracias

delphi.com.ar 14-06-2005 14:21:31

Gracias al método compare, puedes definir a tu gusto el orden del TListView.
Esto lo extraje de la ayuda de Delphi:

Código Delphi [-]
{The OnColumnClick event handler sets the global 
  variable to indicate the column to sort and calls AlphaSort}

procedure TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);

begin
  ColumnToSort := Column.Index;
  (Sender as TCustomListView).AlphaSort;
end;


{The OnCompare event handler causes the list view to sort on the selected column}

procedure TForm1.ListView1Compare(Sender: TObject; Item1, 
              Item2: TListItem; Data: Integer; var Compare: Integer);
var
  ix: Integer;
begin
  if ColumnToSort = 0 then
    Compare := CompareText(Item1.Caption,Item2.Caption)
  else begin
   ix := ColumnToSort - 1;
   Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
  end;

end;

Saludos!

munheko 14-06-2005 16:46:54

vaya,
 
Pues yo sigo sin saber como aplicar ese codigo, mis conocimiento de delphi no son muy altos

Gracias, un saludo

delphi.com.ar 14-06-2005 16:56:34

Cita:

Empezado por munheko
...mis conocimiento de delphi no son muy altos...

Será cuestión de estudiar un poquito, no es nada difícil ;). Te recomiendo intentar aplicar este código guiándote con la ayuda, que es muy completa y te facilitará mucho las cosas.
Simplemente este código lo que hace es cuando el usuario hace click en el encabezado de una columna, guarda el índice de la columna en la variable ColumnToSort y ejecuta el método AlphaSort. Luego de esto, el TListView comenzará a ordenar los datos, preguntándote en el evento OnCompare que item es mayor que otro.

Saludos!


La franja horaria es GMT +2. Ahora son las 13:30:22.

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