Bin mir nicht sicher, seit welcher Version, aber TListView hat nen sehr praktischen Event, der das Erweitern von TListItem um eigene Daten komfortabel und ohne Trickserei ermöglicht:
Delphi-Quellcode:
type
TMyListItem = class(TListItem)
MyNumber: integer;
end;
procedure TForm1.lvCreateItemClass(Sender: TCustomListView; var ItemClass: TListItemClass);
begin
ItemClass := TMyListItem;
end;