... * remove this line .ListItems.Item(ii).ListSubItems.Add(, , "Subitem" + Str(iii)) .ListItems.Item(ii).SubItem(iii) = "SubItem"+STR(iii) ...The columns (that is the "main" text of the row and the subitems) of the ListView are created by adding the headers to the ListView. Afterwards the SubItems have to be filled with values but not to be created by Add().