TListView Column Sort (Sort by the first two columns)

I am using Delphi 2010 and TListView to display names and other data. First two columns: Last Name and First Name

Caption = Last Name
SubItems [0] = Name

How to sort ListView by these two columns? These will be only the columns that Listview will sort, and I would like to always keep the sort as such (when adding, editing, deleting items)

How can i do this?

+4
source share
1 answer

Set SortType to 'stBoth' and implement the OnCompare event OnCompare . Example:

 procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer); var S1, S2: string; begin S1 := Item1.Caption; if Item1.SubItems.Count > 0 then S1 := S1 + Item1.SubItems[0]; S2 := Item2.Caption; if Item2.SubItems.Count > 0 then S2 := S2 + Item2.SubItems[0]; Compare := CompareText(S1, S2); end; 
+7
source

All Articles