PDA

Visualizza la versione completa : [VB6] TreeView - Come si inseriscono le cartelle


cleverboy
31-10-2002, 15:50
Ciao,

il problema è il seguente. Devo creare su di una treeview la lista delle unità e delle cartelle (con sottocartelle) del mio HD, così da poterle selezionare per elaborarne il contenuto....

come faccio in automatico a fargli fare la scansione del disco aggiungendo ogni volta (che trova una cartella o una unità) un nodo all'albero?

Ho visto programmi con questa funzione implementata, quindi si deve poter fare in qualche modo?

Chi mi darebbe una manina?

Grazue:sexpulp:

ivano_76
31-10-2002, 16:11
Ho fatto un programma simile a cio che vuoi fare tu. Io ho risolto il problema cosi:
ho inserito un oggetto DIR1 , FILE1 e DRIVE 1 e poi li ho nascosti
ho creato un nodo padre che era collegato al DRIVE e ogni volta che si clicca sul nodo faccio partire la routine del DRIVE (nascosto) in questo modo in realtà il lavoro lo fa il controllo DIR, FILE e DRIVE solo che essendo nascosti e utilizzando i loro eventi all'interno del TreeView funziona e nessuno può sospettare il mio trucco!

cleverboy
31-10-2002, 19:32
grazie, ma volevo fare una cosa MOLTO professional!
se non trovo altro, faccio come dici tu!

grazie

cleverboy
02-11-2002, 17:34
Avrei avuto una mezza idea, ma per qualche motivo non funziona...

L'idea è questa:
Prima cerco i drive del mio sistema (HD e CDRoms). Essi saranno i miei nodi principali per l'albero.
Poi, per ogni nodo principale, faccio una scansione ricorsiva delle directory con il comando Dir.

La ricorsione però non funziona... perchè quando uso il comando dir per leggere la directory successiva, dopo tutta la ricorsione della prima directory, esso non sa più dove andare a prendere i dati.

Non so se mi sono spiegato, magari se vi manca qualche particolare chiedetemelo, al limite vi mando un pezzo di codice...

ivano_76
05-11-2002, 14:53
Guarda che come ho fatto io sembra di vedere Windows Explorer... funziona bene!

cleverboy
05-11-2002, 15:41
Diciamo che vada bene, ma non mi hai detto cosa hai fatto di preciso... Immagino che ad ogni click sull'albero corrisponda un aggiornamento da parte del comando DRIVE, o no?

Se tu potessi essere un po' più preciso ti sarei grato... Grazie

JamesD
05-11-2002, 20:39
Però come hai fattoi tu, Ivano, inserisci tre controlli nel tuo programma. Penso che la soluzione con dir sia migliore. Clever se vuoi che ti aiutiamo a trocvare l'errore dovresti postare almeno la parte di codice che non funzia

:ciauz: :ciauz:

ivano_76
06-11-2002, 08:28
Fai finta x 1 attimo che non ci sia l'albero TREE. Il funzionamento è identico l'unica cosa è collegare gli eventi dir all'albero. Quindi ogni volta che apri un cartella, in effetti c'è un evento DIR che entra in gioco. Ogni volta che cambi Drive,invece entra in gioco l'evento DRIVE

cleverboy
06-11-2002, 17:34
Già, ma in questo modo, pratico per alcuni aspetti, non saprai mai a priori se una cartella (o nodo) ha delle sottocartelle, perché i segni + non vengono visualizzati!

O ho capito male io, o il tuo metodo ha un piccolo BUG... magari a te va bene così, ma io alle sotto cartelle ci tengo in particolar modo... è una esigenza abbastanza forte del mio programma!

Oppure ho capito male e il completamento dell'albero lo fa all'avvio della form?? Mi pare un po' intricato!

:master:

cleverboy
06-11-2002, 17:36
Ok jamesD.

Non appena arrivo a casa inserisco il codice.
Spero di riuscire a postare tutto quello che serve... sai si trova su due documenti diversi! (la chiamata sul form e la routine su di un modulo)

Verso le 7 dovrebbe essere on-line.
Se gli date un'occhiata mi fate un piacerone!

Grazie:metallica

Loading