Añade BeginUpdate / EndUpdate al Listview para que no actualice cada vez que se añade un elemento, sino que sólo actualice los items al terminar de añadirlos todos.
Código Delphi
[-]
procedure TForm1.FormCreate(Sender: TObject);
var
i, registros : Integer;
iStr : String;
Lista : TStringList;
begin
registros := 100-1;
ShowMessage('Creando lista de datos ''file.lst'', espere...');
with TStringList.Create do
try
for i:=0 to registros do
begin
iStr := IntToStr(i+1);
Add('Nombre de Contacto ' + iStr);
Add(DateToStr(Now+i));
Add('Email_' + iStr + '@hotmail.com');
Add('Tel. de Contacto ' + iStr);
Add('Comentarios');
end;
SaveToFile(ExtractFilePath(Application.ExeName) + 'file.lst');
finally
Free;
end;
ShowMessage('Actualizando Propiedades de ListView1, espere...');
ListView1.ViewStyle := vsReport;
ListView1.Align := alClient;
ListView1.Columns.Add.Caption := 'Nombre';
ListView1.Columns.Add.Caption := 'Nacimiento';
ListView1.Columns.Add.Caption := 'Correo';
ListView1.Columns.Add.Caption := 'Telefono';
ListView1.Columns.Add.Caption := 'Comentarios';
ShowMessage('Llenando los Items en ListView1, espere...');
Lista := TStringList.Create;
Lista.LoadFromFile(ExtractFilePath(Application.ExeName) + 'file.lst');
try
ListView1.BeginUpdate;
for i:=0 to (Lista.Count div 5)-1 do
with ListView1.Items.Add do
begin
Caption := Lista[i*5];
SubItems.Add(Trim(Lista[i*5+1]));
SubItems.Add(Trim(Lista[i*5+2]));
SubItems.Add(Trim(Lista[i*5+3]));
SubItems.Add(Trim(Lista[i*5+4]));
end;
finally
ListView1.EndUpdate;
end;
end;
end.