Witam.
Znalazłem takie coś na forum:
var
ASC: Boolean;
ColumnToSort: Integer;
procedure TGlowna.ColumnClick(Sender: TObject;
Column: TListColumn);
begin
ASC := not ASC;
ColumnToSort := Column.Index;
(Sender as TCustomListView).AlphaSort;
end;
procedure TGlowna.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
var
ix: Integer;
begin
if ASC then
begin
if ColumnToSort = 0 then
Compare := CompareText(Item1.Caption,Item2.Caption)
else
begin
ix := ColumnToSort - 1;
if (ColumnToSort = 2) then
Compare := StrToInt(Item1.SubItems[ix]) - StrToInt(Item2.SubItems[ix])
else
Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
end;
end
else
begin
if ColumnToSort = 0 then
Compare := CompareText(Item2.Caption,Item1.Caption)
else
begin
ix := ColumnToSort - 1;
if (ColumnToSort = 2) or (ColumnToSort = 3) then
Compare := -(StrToInt(Item1.SubItems[ix]) - StrToInt(Item2.SubItems[ix]))
else
Compare := CompareText(Item2.SubItems[ix],Item1.SubItems[ix]);
end;
end;
end;
Czy jest jakiś inny sposób i lepszy???
THX