Ver Mensaje Individual
  #17  
Antiguo 19-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
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.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita