CustomSort(nil, 0) müsste funktionieren, aber auch nur dann, wenn der aufrufenden Listview ein OnCompare Ereignis zugewiesen wurde. Mach in dein ListView1Compare mal ein ShowMessage(IntToStr(ColumnToSort)) rein und schau, ob es aufgerufen wird.
Wenn du ohne die globale Variable ColumnToSort auskommen willst, kannst du den zweiten Parameter benutzen.
Delphi-Quellcode:
procedure TForm1.ListView1ColumnClick(Sender: TObject;
Column: TListColumn);
begin
(Sender as TListView).CustomSort(nil, Column.Index);
end;
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
var
ix: Integer;
begin
if Data = 0 then
Compare := CompareText(Item1.Caption,Item2.Caption)
else begin
ix := Data - 1;
Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
end;
end;
Dani H.
At Least I Can Say I Tried