Debes indicarle al
TListView que vas a realizar modificaciones o inserciones masivas de Items:
Eso se hace con los metodos
BeginUpdate y
EndUpdate de la clase
TListItems (propiedad
Items de los
TListView). Basicamente lo que hace es demorar todas las actualizaciones visuales hasta que se llame a EndUpdate. La estructura general es la siguiente:
Código Delphi
[-]
procedure ...
var
ListItem: TListItem;
begin
ListView.Items.BeginUpdate;
try
bucle for/while/ etc
begin
ListItem := ListView.Items.Add;
ListItem.Caption := 'blabla';
ListItem.SubItems.Add('blabla');
end;
finally
ListView.Items.EndUpdate;
end;
end;
El try-finally asegura que se invoque siempre en ultima instancia el metodo
EndUpdate. De omitirse ese llamado, el ListView nunca se actualiza.
Es importante notar que por cada
BeginUpdate que se invoque, se debe emparejar con un
EndUpdate. Es decir, los BeginUpdate se pueden "anidar", asi que despues es necesario "deshacerlos", uno por uno, con un EndUpdate