Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VB6] Caricamento dati rapido in ListView

    Ciao a tutti,
    mi piacerebbe sapere se è possibile velocizzare in qualche modo il caricamento dei dati in una listview.

    Mi spiego meglio. Nella mia applicazione mi trovo a lavorare con array di circa 1500, 2000 elementi che devono essere elaborati, riordinati e scritti ogni volta nella list. Il problema che il processo di scrittura è un pò lungo, inoltre siccome la list si aggiorna ad ogni aggiunta si vede un fastidioso sfarfallio per tutto il processo.

    Non c'è un metodo per aggiornare la list al termine dell'operazione o qualche altro metodo per velocizzare la scrittura dei dati?

    Vi ringrazio in anticipo per l'aiuto. A presto

  2. #2

  3. #3
    nessuno sa darmi una mano? Chiedo anche a qualcuno che ha il mio stesso problema magari insieme riusciamo a risolverlo.

  4. #4
    Ho il tuo stesso problema con una TreeView...

    ci sto pensando!
    L'aquilone è simbolo che l'uomo vuole andare più su

  5. #5
    credo che un possibile soluzione per non vedere quel fastidioso sfarfallio sia bloccare il controllo per poi utilizzare il suo refresh ma questo non si può fare, quindi direi di nascondere l'oggetto prima del caricamento ridisegnarlo dopo l'avvenuta operazione.

    Che ne dici?
    L'aquilone è simbolo che l'uomo vuole andare più su

  6. #6
    Mi sembra una buona idea per eliminare lo sfarfallio ma non penso che possa diminuire in alcun modo la velocità di caricamento dei dati. In oltre se facciamo scomaprire il controllo durante il tempo di caricamento si creerà un buco nel form.
    Anche io sono certo che il problema stia nel fatto che il controllo esegue un refresh ad ogni aggiunta e questo rallente di molto l'esecuzine ma, come te, non sono riuscito a trovare il modo di eseguire un unico refresh finale.
    L'unico modo che ho trovato è non inserire il DoEvents all'interno del ciclo che popolala list ma naturalmetnte questo provoca quasi ogni volta un crash del programma. Soprattutto quando si lavora con array di circa 2000 elementi.

    Magari potremmo lavorare su un alternativa al DoEvents che blocchi solamente l'aggiornamento della list.

    Comunque ti ringrazio per il parere, spero di continuare la conversazione e alla fine arrivare ad una soluzione.
    Alla prossima

  7. #7
    Ritiro subito quello che ho detto poco fa. Se rendo invisibile la Listview prima dell'operazione il tempo di computazione, ad un primo esperimento, sembra diminuire di parecchio. Ti invito caldamente a provarci anche con la tua TreeView.

    Ti ringrazio molto per il consiglio.
    Ora l'unico problema che dovremmo risolvere, anche se non è importantissimo è quello di non far vedere qual fastidioso spazio vuoto sul from.

    Un'idea, anche se preferirei trovarne una più bella, sarebbe quella di preparare un list (o Tree) vuota che si visualizza al posto di qualla che momentaneamente si stà popolando fungendo da tampone.

    Se ne hai una migliore fammelo sapere, grazie ancora e spero che la conversazione possa essere d'aiuto a te a chiunque altro abbia questo problema.

    Alla prossima

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.