Organizar um ListView pela coluna selecionada
20/08/2004
0
Como organizar um ListView pela coluna em que o usuário clicou ?
Tiba
Curtir tópico
+ 0
Responder
Posts
20/08/2004
Rodrigo Coutinho
Olá, amigo faça isto.
// ListView1.name := Lista;
procedure Tform.ListaColumnClick(Sender: TObject;
Column: TListColumn);
Var iI: Integer;
begin
ColumnToSort := Column.Index;
(Sender as TCustomListView).AlphaSort;
For iI := 0 to Lista.Columns.Count - 1 do
If Lista.Columns[iI].ImageIndex > 0 Then
Lista.Columns[iI].ImageIndex := -1;
end;
procedure Tform.ListaCompare(Sender: TObject; Item1,
Item2: TListItem; Data: Integer; var Compare: Integer);
var
ix: Integer;
begin
If Ordem Then
if ColumnToSort = 0 then
Compare := CompareText(Item1.Caption,Item2.Caption)
else
begin
ix := ColumnToSort - 1;
Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
end
Else
if ColumnToSort = 0 then
Compare := CompareText(Item2.Caption,Item1.Caption)
else
begin
ix := ColumnToSort - 1;
Compare := CompareText(Item2.SubItems[ix],Item1.SubItems[ix]);
end;
end;
// ListView1.name := Lista;
procedure Tform.ListaColumnClick(Sender: TObject;
Column: TListColumn);
Var iI: Integer;
begin
ColumnToSort := Column.Index;
(Sender as TCustomListView).AlphaSort;
For iI := 0 to Lista.Columns.Count - 1 do
If Lista.Columns[iI].ImageIndex > 0 Then
Lista.Columns[iI].ImageIndex := -1;
end;
procedure Tform.ListaCompare(Sender: TObject; Item1,
Item2: TListItem; Data: Integer; var Compare: Integer);
var
ix: Integer;
begin
If Ordem Then
if ColumnToSort = 0 then
Compare := CompareText(Item1.Caption,Item2.Caption)
else
begin
ix := ColumnToSort - 1;
Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
end
Else
if ColumnToSort = 0 then
Compare := CompareText(Item2.Caption,Item1.Caption)
else
begin
ix := ColumnToSort - 1;
Compare := CompareText(Item2.SubItems[ix],Item1.SubItems[ix]);
end;
end;
Responder
21/08/2004
Tiba
isto resolve quando os valores são strings !!
mas e quando são datas ?? ou valores numéricos ?? como fazer a comparação ?
mas e quando são datas ?? ou valores numéricos ?? como fazer a comparação ?
Responder
Clique aqui para fazer login e interagir na Comunidade :)