begin process at 2010 03 21 09:42:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Autre

 > 

ListView bloque trop d'items


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ListView bloque trop d'items

mercredi 24 septembre 2008 à 11:16:37 | ListView bloque trop d'items

L_art_ment

Bonjour, bonjour

J'ai une petit question à vous demander, je pense que la réponse n'est pas compliquée mais je ne parvient pas à la trouver de moi même

J'ai sur une form une ListView, quand je veux remplir ma ListView elle bloque (évidement je lui ajoute 100000 items)... Enfin je pense que c'est le nombre d'items que je veux lui faire avaler qui la fait bloquer pasqu'avec moins ca passe...

Auriez vous une petite méthode pour pallier à mon soucis s'il vous plait ? Là je ne trouve pô comment faire

Merci


L'Armand joue, l'arme en joug... Mon site
mercredi 24 septembre 2008 à 13:54:09 | Re : ListView bloque trop d'items

L_art_ment

Bon et bien... J'ai trouvé un truc que je ne connaissais pas...

En ajouttant "ListView1.Items.BeginUpdate" au début de mes modifications et "ListBox1.Items.EndUpdate" à la fin, ca accélère un peu le procéssus, en fait ce n'est pas que ma ListBox se bloque, c'est qu'elle met excessivement de temps pour tout charger (plus de 10minutes, après 10minutes j'ai arrêté :x)...

Auriez vous une idée pour charger un fichier text très très volumineux et que ca prenne moins de temps ?

Merci pour votre aide


L'Armand joue, l'arme en joug... Mon site
mercredi 24 septembre 2008 à 15:23:16 | Re : ListView bloque trop d'items

f0xi

Membre Club Administrateur CodeS-SourceS

pour tout ce qui est TStrings :

Strings.BeginUpdate;
try
  { code }
finally
  Strings.EndUpdate;
end;





mercredi 24 septembre 2008 à 15:45:56 | Re : ListView bloque trop d'items

L_art_ment

Bein oui c'est ce que je fais déjà, mon code :

for i := 0 to StrList.Count - 1 do
    begin
    a:=pos('.',StrList[i]);
    dateheure:=DecodeDate(copy(StrList[i],0,a-1));
    ListView1.Items.BeginUpdate;
    with listView1.Items.Add do
        begin
        Caption := date;
        SubItems.Add(heure);
        end;
  ListView1.Items.EndUpdate;
  end;

StrList étant une StringListe contenant mes (100000) lignes que je veux ajouter à ma ListView mais en faisant quelques opérations sur la ligne entre deux...

Mais ca met quand même trois plombes...



L'Armand joue, l'arme en joug... Mon site
lundi 29 septembre 2008 à 20:54:53 | Re : ListView bloque trop d'items

Kenavo

Si quelqu'un a un solution je suis preneur ! (Que 30 000 lignes)

J'ai mis un ProgressBar dans la boucle, et le plus évident, c'est que le chargement ralentit à partir de la moitié ...

J'ai essayé AllocBy sans succès flagrant ...

Ken@vo

Code, Code, Codec !

lundi 29 septembre 2008 à 22:03:44 | Re : ListView bloque trop d'items

L_art_ment

Bein moi pour l'instant, la seule soluce que j'ai trouvé, c'est de n'afficher que 10000 items par 10000items, avec un genre de bouton "suivant" pour voir les 10000 prochains autres (ayant au préalable placé les lignes que je veux voir dans un StringList)...
Voilà mon systèm D, il doit bien y en avoir des plus efficaces


L'Armand joue, l'arme en joug... Mon site
mardi 30 septembre 2008 à 23:20:46 | Re : ListView bloque trop d'items

Delphiprog

Administrateur CodeS-SourceS
Tu utilises effectivement BeginUpdate/EndUpdate dans ton code mais de manière incorrecte !
Relis bien la réponse de foxi et ça devrait te sauter aux yeux.

Au passage, salut mon cher Kenavo

May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
jeudi 2 octobre 2008 à 19:17:40 | Re : ListView bloque trop d'items

Kenavo

S alut à toi Delphiprog ! Ravi de te croiser de temps en temps

Ken@vo

Code, Code, Codec !


Cette discussion est classée dans : listview, items, trop, bloque, pense


Répondre à ce message

Sujets en rapport avec ce message

insert dasn un listview [ par skiso ] listview1.Items.Insert(0);listview1.Items.Item[0].Caption:='jjjjjj';listview1.Items.Item[0].SubItems.text:='rrr';comment faire pour ecrire dans les au listview.clear tres lent [ par loursonwinny ] Bonjour,J'ai un petit souci avec le TListView. Lorsque je rajoute 10000 items, j'obtiens un temp d'éxécution tout a fait satisfaisant. Mais lorsque je IndexOf d'une ListView et sauvegarde des icônes [ par ActiveX ] Y a t'il quelq'un qui a déjà utilisé l'indexOf d'une Listview.je veux faire un indexof avec un string dans un Listviewvar i: Integer;   begin   i := L Remplir une ListView et mettre certains textes de colonnes en couleurs [ par tolt ] Bonjour,Savez-vous comment faire en Delphi pour remplacer ce code ci-dessous VB très simple en Delphi. Voir même si possible un exemple tous simple po ListView SubItem ... index out of bound [ par Golderack ] Bonjour j'ai un petit problème avec le composant ListView. Je dois parcourir des éléments dans le ListView. Pour les trois première colonne ca marche Intervertir deux lignes d'un ListView [ par informatixo ] Bonjour le forum, J'ai un petit souci avec le code suivant : procedure TForm2.Button1Click(Sender: TObject); var   ItemTampon: TListItem; begin   Item Question compliquée : Comment simuler un clic sur une selection en cours dans un Listview [ par vieuxpere ] Bonjour,Je selectionne des items dans mon listView et j'accompli le code suivant :// Supprime l'ensemble des messages selectionnéswith ListView1 do fo listview [ par skiso ] svpje veut savoir comment je peut ecrire dans un listview dans les cases je sais que pour la premier il faut ecrire :listview1.Items.Item[0].SubItems. Listview(Compter les items) [ par tigrou19 ] Bonjour,Je souhaiterais pouvoir compter les Items de la colonne 5 de ma ListView si celà est possible.Merci. Problème listview clic droit [ par pelly1308 ] Bonjour tout le monde.J'écris car j'ai un problème avec une liste view.En fait, j'utilise principalement l'entête des colonnes de cette listview (en m


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales