Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-04-2008
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
TListview y añadir elementos...

Buenas!!
Pues nada, tengo un codigo que me va LENTISIMO y todo en la parte en la que añado los elementos a mi TListview...

Lo hago así:
Código Delphi [-]
var
  TempI,TempII,foundby:integer;
  tempb:bool;
  filtrados:integer;
  TempSna,TempSdn,TempSip,TempSmo:string;
  TiT : TListItem;
begin
  //Mostramos la DB
    AllStatus(False);
    filtrados := 0;
    comparacionaeservista.Clear;
    for TempI := 0 to aerodbreplist.Items.Count-1 do begin
      application.ProcessMessages;
      foundby := -1;
      TempSna := aerodbreplist.Items.Item[TempI].Caption;
      TempSdn := aerodbreplist.Items.Item[TempI].SubItems.Strings[0];
      TempSip := aerodbreplist.Items.Item[TempI].SubItems.Strings[1];
      TempSmo := aerodbreplist.Items.Item[TempI].SubItems.Strings[2];
      TempII:=0;
      while TempII < getsoksek.Items.count do begin
        if TraduceSMtoDB('i',TempSip,getsoksek.Items.Item[TempII].SubItems.Strings[1]) then begin
          foundby := TempII;
          TempII := getsoksek.items.count;
        end else if TraduceSMtoDB('d',TempSdn,getsoksek.Items.Item[TempII].SubItems.Strings[0])  then  begin
          foundby := TempII;
          TempII := getsoksek.items.count;
        end else if TraduceSMtoDB('n',TempSNA,getsoksek.Items.Item[TempII].Caption)  then begin
          foundby := TempII;
          TempII := getsoksek.items.count;
        end;
        TempII := TempII + 1;
      end;
      if foundby > -1 then begin
        TiT := comparacionaeservista.Items.Add;
        TiT.Caption := aerodbreplist.Items.Item[TempI].Caption;
        Tit.SubItems.Add(getsoksek.Items.Item[foundby].Caption);
        Tit.SubItems.Add(aerodbreplist.Items.Item[TempI].SubItems.Strings[0]);
        Tit.SubItems.Add(getsoksek.Items.Item[foundby].SubItems.Strings[0]);
        Tit.SubItems.Add(aerodbreplist.Items.Item[TempI].SubItems.Strings[1]);
        Tit.SubItems.Add(getsoksek.Items.Item[foundby].SubItems.Strings[1]);
        Tit.SubItems.Add(aerodbreplist.Items.Item[TempI].SubItems.Strings[2]);
        Tit.SubItems.Add(getsoksek.Items.Item[foundby].SubItems.Strings[2]);
        Tit.SubItems.Add(aerodbreplist.Items.Item[TempI].SubItems.Strings[3]);
        Tit.SubItems.Add(getsoksek.Items.Item[foundby].SubItems.Strings[3]);
        Tit.SubItems.Add(getsoksek.Items.Item[foundby].SubItems.Strings[4]);
        Tit.SubItems.Add('');
      end else begin
        TiT := comparacionaeservista.Items.Add;
        TiT.Caption := aerodbreplist.Items.Item[TempI].Caption;
        Tit.SubItems.Add('N/A');
        Tit.SubItems.Add(aerodbreplist.Items.Item[TempI].SubItems.Strings[0]);
        Tit.SubItems.Add('N/A');
        Tit.SubItems.Add(aerodbreplist.Items.Item[TempI].SubItems.Strings[1]);
        Tit.SubItems.Add('N/A');
        Tit.SubItems.Add(aerodbreplist.Items.Item[TempI].SubItems.Strings[2]);
        Tit.SubItems.Add('N/A');
        Tit.SubItems.Add(aerodbreplist.Items.Item[TempI].SubItems.Strings[3]);
        Tit.SubItems.Add('N/A');
        Tit.SubItems.Add('N/A');
        Tit.SubItems.Add('');
      end;
    end;
[etc...]

No tengo ni idea como puedo hacerlo mas rapido el Tit.... pero es tremendamente lento ... Y por cierto, el primer while es MUY rapido así que no me digais que será por eso por que no... tengo más que debugeado que el retardo enorme está en la parte de "TiT := comparacionaeservista.Items.Add;"...
Hay otra forma mejor? Gracias!!

Vale, si, ya se que hago muchos "application.ProcessMessages;", pero cuando no los hago va igual de lentro y además necesito hacerlo por que no puedo dejar la aplicación en modo colgado...

Muchas gracias...

Última edición por lag_0 fecha: 09-04-2008 a las 14:28:24.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Añadir elementos sin repetir MaMu Varios 12 21-10-2015 21:17:40
XML y sus elementos papulo Varios 5 01-03-2007 10:13:30
TListView calogero Varios 0 18-01-2007 17:16:45
Tlistview Yenifer Varios 1 18-08-2004 16:33:44
Problemas al añadir elementos a una Lista en una aplicación tipo consola judoboy Varios 2 09-06-2003 13:58:48


La franja horaria es GMT +2. Ahora son las 15:44:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi