Newsgroup: it.comp.lang.visual-basic
Titolo: ListView con 11000 linee

Ho una form che praticamente funge da database con i vari campi che
costituiscono la tabella.
I record sono al momento 11000 e in futuro non dovrebbero aumentare di
molto.
In questa form vorrei avere ( e l'ho già) una listview che visualizza
solamente le ragioni sociali.
Nel resto della form tutti i campi che rimangono.
Ora quando carico la form impiego circa 5/6 secondi prima che la lv si
riempia e anche se sono relativamente pochi (i secondi) si notano
(giustamente :) ).
La mia domanda è:
Se io dovessi caricare la lv al momento in cui lancio l'applicazione (così
maschero il tempo di attesa con la splash) come faccio a mantenerla in
memoria per poi visualizzarla nella form che al momento vorrei usare.
Qualcuno che mi dia un consiglio ?
Grazie, Alberto



Pare che anche una DBGrid ti vada bene, hai provato? Che risultati
ottieni in termine di secondi?
Lanci il formprincipale che nella sezione Load Carica la form di
presentazione, nel frattempo carica la lista e poi manda uno Show a se
stessa.
Ciao


puoi inserire la list nel form(splash :))) e poi con una setparent (api) la
porti sul form principale
Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal
hWndNewParent As Long) As Long
SetParent List1.hWnd, Form2.hWnd
ovviamente dopo lo show del secondo form :)))
ciao

 porti sul form principale
    Cosa intendi per portarla ?
    Copiare i dati in essa contenuta all'altra ?

Ok pendo di aver capito ;) (l'ho provato !!)
Ma da ora in poi devo fare riferimento alla list della splash ??

> Ma da ora in poi devo fare riferimento alla list della splash ??
certo quale altra lista vorresti far riferimento ? :))

Ma perchè quando chiudo la form e la riapro non vedo + la list ??

Ma perchè quando chiudo la form e la riapro non vedo + la list ??
Quando chiudi il form devi rimettere la list da dove l' hai presa
e riprenderla al successivo caricamento.
-- 
ciao, hal

Thank !!

:] Un'altra domanda.
Quando apro la splash vorrei visualizzare una barra di avanzamento
dell'operazione ma della splash vedo solo i contorni e quando la vedo
completamente appare per mezzo secondo.
Ho provato a caricare i dati nella list su form load/activate ma non cambia
nulla.
Come posso visualizzare la form e dopo averla visualizzata far partire il
riempimento della list ?

 ha scritto nel messaggio
news:o_Me8.29543$fa5.1...@twister2.libero.it...


Ho risolto con un timer :-]

Non riesco a portarla da dove l'ho presa !!
VB mi va in crash
Come si fa?
Quando la sposto faccio:
SetParent Splash.lstAziende.hwnd, Me.frameList.hwnd
per fare il contrario ?

Fatto:
SetParent Splash.lstAziende.hwnd, Splash.hwnd

 SetParent Splash.lstAziende.hwnd, Splash.hwnd
ma chiedi prima di provare? :)))))))

No ho chiesto dopo aver riavviato 3 volte :-P

 notano (giustamente :) ).
[...]
Esiste la virtual listview, che tiene fino a 4 miliardi e 300 milioni 
di item (2^32), ma soprattutto carica ogni volta solo quelli su schermo 
(cioè al massimo qualche decina circa alla volta): ideale per questo 
genere di lavori. Tecnicamente, genera un evento (cioè un messaggio) 
ogni volta che la lista viene ridimensionata o scorsa in verticale con 
la scrollbar, dando la possibilità all'applicazione di caricare i nuovi 
record da mostrare su schermo e/o scaricare quelli fuori schermo
E' nei common controls non ricordo da che versione in poi. Non so però 
se esista un controllo ActiveX con supporto per questa entità (dubito, 
dato che quelli esistenti, almeno quelli ufficiali di Microsoft, 
conterranno a malapena la metà dei controlli)