Писал для себя, поэтому долго не думал, как назвать :)

В модуле описан класс TMyItem, упрощающий работу с TListView в режиме таблицы (ViewStyle — vsReport).

type
  TMyItem=Class(TObject)
    Caption: String;
    SubItems: TStrings;
    constructor Create;
    destructor Destroy; override;
    procedure AddValueToItem(Value: String);
    procedure ApplyColumnWidthsToList(List: TListView);
    procedure AddItemToList(List: TListView);
    procedure ApplyColumnsToList(List: TListView);
    procedure ItemToMyItem(List: TListView; ItemIndex: Integer);
    procedure CaptionToMyItem(List: TListView);
    procedure CaptionWidthsToMyItem(List: TListView);
    function IsNumeric: Boolean;
    procedure StrToMyItem(s: String);
    function MyItemToStr: String;
    procedure Clear;
    function Count: Integer;
  end;

По порядку:

Caption и SubItems – аналогично элементам у TListView, решил их не прятать.

AddValueToItem – добавить значение. Если элемент ещё не заполнен, пойдёт в Caption, иначе в SubItems.

AddItemToList – добавить (скопировать) созданный элемент в указанный TListView.

ApplyColumnsToList – наш элемент содержит имена  столбцов. Присвоить их.

ApplyColumnWidthsToList – наш элемент содержит ширину столбцов. Присвоить.

В последнем случае нам нужно быть уверенными, что все элементы легко преобразуются в целые числа, иначе вызывается исключение. Для этого можно воспользоваться функцией IsNumeric.

ItemToMyItem – наоборот, берём информацию из существующего элемента TListView.

CaptionToMyItem, CaptionWidthsToMyItem – ApplyColumnsToList и ApplyColumnWidthsToList в обратном направлении.

StrToMyItem – преобразуем строку в TMyItem. Формат строки: Caption|SubItem1|SubItem2|…

MyItemToStr – формируем такую строку.

Ещё один момент: если мы присваиваем заголовок, и где-нибудь есть знак %, то он исчезнет, а у столбца появится свойство Tag=1. И в обратную сторону знак процента появится, если стоит Tag=1.

Скачать модуль MyItems.

И при копировании материала с блога, обязательно оставляйте прямую ссылка на http://parsers.info.

В своё время пришлось помучиться с TListView, ибо логически не сразу понятно, как работать с элементами в режиме таблицы. С этими и другими проблемами очень помогали форумы программистов. А сейчас этот модуль написал за две поездки в метро :)