+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 6 su 6

Visualizzare in una TListView solo alcuni elementi

  1. #1
    L'avatar di Silver Black
    Silver Black non è in linea Scolaretto
    Ho una certa struttura dati in memoria (array, TDictionary, ecc., devo ancora decidere) e i dati ivi memorizzati possono essere moltissimi (anche nell'ordine delle decine di migliaia). L'inserimento e la creazione ad albero della struttura dati che mi sono costruito è velocissimo (meno di un minuto per più di 23.000 elementi e poco più di 1 secondo per 3.000 elementi).

    Il problema è la visualizzazione all'utente, che al momento avviene tramite TListView. Ho notato che l'inserimento degli elementi (anche senza controllo di esistenza dell'elemento) è molto lento (1 minuto e 30 secondi per i 3.000 elementi del test precedente), quindi mi stavo chiedendo: non è che esiste un modo per visualizzare all'utente solo una parte di elementi, magari solo quelli effettivamente visibili nello schermo e quindi non caricare tutti gli elementi della struttura dati nella listview?
    ℹ️ Leggi di più su Silver Black ...

  2. #2
    L'avatar di Silver Black
    Silver Black non è in linea Scolaretto
    Credo che la tecnica migliore sia una TListView virtuale, ossia con la proprietà OwnerData settata a True.
    Qualcuno ha qualche esempio di come popolarla? Leggo che dovrebbe essere nei Demo di RAD Studio ma ho la versione 2010 e non trovo nulla...
    ℹ️ Leggi di più su Silver Black ...

  3. #3
    L'avatar di Silver Black
    Silver Black non è in linea Scolaretto
    Forse ho trovato, vi faccio sapere!
    ℹ️ Leggi di più su Silver Black ...

  4. #4
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Per questo tipo di esigenze, io ho sempre usato con enorme soddisfazione il componente Virtual TreeView (homepage).

    Si tratta di un controllo TreeView (che può comunque visualizzare anche una lista "piatta", non gerarchica) in grado di lavorare su strutture dati virtuali estraendo e mostrando solo gli elementi necessari, con parecchie opzioni per configurare il meccanismo e il comportamento (ci sono diversi esempi, guide ed estensioni da scaricare).

    Prova a dare un'occhiata.

    Ciao!
    ℹ️ Leggi di più su _alka_ ...

  5. #5
    L'avatar di Silver Black
    Silver Black non è in linea Scolaretto
    Quote Originariamente inviato da CompilaQuindiVa Visualizza il messaggio
    Per questo tipo di esigenze, io ho sempre usato con enorme soddisfazione il componente Virtual TreeView (homepage).

    Si tratta di un controllo TreeView (che può comunque visualizzare anche una lista "piatta", non gerarchica) in grado di lavorare su strutture dati virtuali estraendo e mostrando solo gli elementi necessari, con parecchie opzioni per configurare il meccanismo e il comportamento (ci sono diversi esempi, guide ed estensioni da scaricare).

    Prova a dare un'occhiata.

    Ciao!
    Bellissimo componente! Ma è gratis?
    Comunque pensavo di implementare una listview virtuale nel seguente modo:

    procedure TfrmMain.ListView1Data(Sender: TObject; Item: TListItem);
    begin
      Item.Caption := IntToStr(Item.Index);
      Item.SubItems.Add( MyArray[Item.Index] );
      Item.SubItems.Add( UpperCase(MyArray[Item.Index]) );
    end;
    
    Preferisco fare tutto da me, utilizzando meno componenti esterni possibili. Certo, se poi cominciassi a vedere che ci sono dei limiti o che è troppo complesso reinventare la ruota (per esempio non ho ancora capito come assegnare immagini agli elementi di una listview virtuale), allora mi baserò sicuramente sul componente che mi hai suggerito, ti ringrazio davvero per la rivelazione.
    ℹ️ Leggi di più su Silver Black ...

  6. #6
    L'avatar di Silver Black
    Silver Black non è in linea Scolaretto
    Ecco il test, direi che TDictionary e TListView virtuale sono un'accoppiata VELOCISSIMA:



    Adesso direi che posso dare un estremo boost alle mie applicazioni! Grazie a tutti.
    ℹ️ Leggi di più su Silver Black ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Visualizzare solo alcuni valori su casella combinata
    Da druido83 nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 26-09-2014, 20:03
  2. [VB.NET]: Accettare solo alcuni caratteri...
    Da maninblack nel forum Visual Basic .Net
    Risposte: 7
    Ultimo Post: 18-05-2013, 22:34
  3. [VB6]: Selezionare solo alcuni caratteri
    Da maninblack nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 03-09-2012, 19:59
  4. XML leggere solo alcuni campi
    Da skiokk nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 20-04-2007, 21:08
  5. inviare solo alcuni file
    Da Vabene nel forum Visual Basic 6
    Risposte: 9
    Ultimo Post: 19-07-2006, 13:37