Newsgroup: it.comp.lang.visual-basic
Titolo: Velocizzare funzione Load di un oggetto

Ciao a tutti.
Sto creando un visualizzatore di immagini che carica le foto come 
thumbnail appena scelgo una cartella.
L'immagine viene caricata in un mio UserControl che contiene anche un 
altro paio di oggetti (tipo label e text).
Faccio un ciclo e per ogni file faccio una Load del mio UserContro, ma
quando ne carico un po' (almeno 200) inizia a rallentare un sacco.
Ma come cavolo fa ACDSee a caricarmi 1000 immagini in un batter 
d'occhio? Vero che sarà fatto in C e quant'altro, ma a me è lento anche 
il solo caricamento degli oggetti (il disegno lo faccio tramite GDI+ ed 
è una scheggia!)

 d'occhio?
Perchè in realtà nessun programma del genere oserebbe caricarsi tutti gli
oggetti in un colpo, e se guardi attentamente come si comporta lo noteresti.
Si carica solo quelli che ha a video in quel momento.
Ciao
-- 
NeoDataType : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 
se io scorro anche velocemente li vedi subito tutti,....

 se io scorro anche velocemente li vedi subito tutti,....
una cosa è quello che vedi, un'altra quello che succede...
comunque, pensare di caricare solo gli oggetti strettamente indispensabili
al momento, cioè abbastanza per riempire una videata, credo che sia un
ottimo suggerimento.
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel
messaggio 
news:30101kF...@uni-berlin.de
cut> se io scorro anche velocemente li vedi subito tutti,....
assolutamente no....
ACDsee è con un sacco di foto digitali in un mio pc casalingo...che ha tanta
ram...ma win98 ed un vecchio hd...
se la dir c'ha poche foto.....va tutto ok
quando cominciano ad essere un centinaio alla massima risoluzione....noti il
load sequenziale!
e poi...
....nessun pazzo si caricherebbe 2000 foto d'un colpo.....
a) Vabbè che la ram non costa nulla ma la esauriresti subito
b) Vabbè che i PC oggi son microonde a 3 Ghz...anzi apparecchiature per i
raggi x....ma perchè non pensare anche a chi ha un p4 a 1,8 ghz?
c) Vabbè che li HD son veloci ...ma non tutti han un ultra SCSI3 da 20.000
giri
-- 
Il Wodkino Nazionale è a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 Demo classe vb.NET :
WodkaThumb 
www.villaceleste.it
  click su "spippolando e
Programmando"
---
Messaggio scannerizzato e certificato "Virus free" da AVG free edition.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.797 / Virus Database: 541 - Release Date: 15/11/2004

 
il fatto che si veda il caricamento comunque conferma che viene creata 
una thumbnail per ogni foto. metterei la mano sul fuoco mentre dico che 
se carica tante foto la ram occupata cresce! inoltre, lo scorrere č 
troppo veloce perchč venga eseguita una reload delle immagini 
on-the-fly, quindi sicuramente si carica tutto!
poi, che uno abbia 2000 foto in una cartella, beh, ognuno ha i suoi 
problemi, no? ;-)

 on-the-fly, quindi sicuramente si carica tutto!
Potrebbe anche essere anche un comportamento alla "explorer": carico l'icona
al momento della sua entrata in video, ma per l'icona è diverso: occupa 1k e
uno non avrà mai 2000 files nella stessa cartella.
Ciao

 ha i suoi problemi, no? ;-)
beh un catasto...o uno studio di pubblicitŕ...o una fondazione che cataloga
i suoi reperti...butterebbe tutto via con codesto sistema!
se per cercare una piantina di casa mia si deve caricare tutta
Prato...stiamo freschi!
io ci sto lavorando con NET ad una galleria fotografica.....anche se č
riduttivo chiamarla cosě!
innanzitutto nulla al volo...ma tutto memorizzato....
una immagine non esiste se non come record ...e vengon memorizzati solo i
path.....
2 dir fanno da "buglione"
1 per le immagini originali
1 per le thumb
in fase di load dei dati o aggiornamento....si genera le thumb che
mancano.....
quando mostra...mostra solo paginazioni di database...e relative
thumb.....con tutte le info che il db si porta....
devo dire che per ora a parte lo svantaggio di girare solo su IIS se la cava
bene
inutile dire che ti sto parlando di una soluzione aspx
secondo quello che pare di capire tu non ti crei un database con le info
dell'immagine
ma tante classi(istanze di) quanti son le immagini
guarda che acdsee si fa un DB di tutte le immagini che trova!
non pensare ad un db come qualcosa alla access...puň essere anche un file di
testo...un file xml....e puň essere anche compresso al volo....
guarda in
menu tools->database->......
;-)
-- 
Il Wodkino Nazionale č a : 
www.martek.it


 on-the-fly, quindi sicuramente si carica tutto!
Non necessariamente; per esempio e' per sufficiente mantenere in memoria il
thumbnail generato al primo passaggio (pochi KB) per poterci ritornare
rapidamente senza ricaricare tutta l'immagine, verificando tutt'al piu' che
il file non sia cambiato nel frattempo...
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 ;-)
dove scusa?

ieri sera, in fase mistica (il cesso), ho trovato la soluzione:
io carico le immagini sfruttando GDI+ (un wrapper x vb6 in realtà)...
per disegnare un'immagine bisogna passare un hDC di una form o picture 
che sia. poi gli si dice la posizione x,y da cui partire e la dimensione 
del thumbnail finale. anzichè creare N oggetta, basta semplicemente 
disegnare sempre sullo stesso hDC posizionando correttamente il punto 
x,y di origine. 400 foto caricate in meno di 2 secondi!