Perhaps, I haven't fully understood your question but it seems to me that you are going about things in a somewhat complicated way. Firstly, by far the neatest way to add entries to a list view goes something like this
- Use the ListView.Items.Add method to add a new row
- Assign the "Caption" property for that row
- Use the SubItems.Add method to add the other column entries
Once you have done this there remains the sorting issue. TListView offers an OnCompare event that is supposed to help with the task of custom sorting. In practice it is badly bugged and the results are rarely satisfactory. A better approach is to do the following
- Assign an OnColumnClick event handler
- In that handler call the CustomSort method of the list view.
- You need to provide a callback function to CustomSort to establish list order. There is adequate information in the Delphi help file on this subject