The correct way to do this is:
while not end do
begin
with ListView.Items.Add do
begin
with ListView.Items.Add do
begin
Caption := 'col 0';
SubItems.Add('col 1');
SubItems.Add('col 2');
end;
Inc(i);
end;
SubItems.Add('col 1');
SubItems.Add('col 2');
end;
Inc(i);
end;