Why not use something like that?
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
listitem: TListItem;
s: String;
begin
i:= 0;
for i:= 0 to 20 do
begin
listitem:= TListItem.Create(ListView1.Items);
listitem.Caption := IntToStr(i);
listitem.SubItems.Add('col2 ' + IntToStr(i));
listitem.SubItems.Add('col3 ' + IntToStr(i));
ListView1.Items.AddItem(listitem);
//listitem.SubItems[0]:= 'test2';
end;
end;
Sorry for double post skalogryz ^^