Newsgroup: it.comp.lang.visual-basic
Titolo: Chiedo un aiuto sul controllo TREEVIEW

Salve a tutti.
Vi chiedo un aiuto sull'implementazione del controllo TREEVIEW in un
programma VB6 che sto provando a scrivere..
Supponiamo che voglia rappresentare con un treeview una struttura di
questo tipo: come root le voci AUTOVEICOLI, MOTOVEICOLI,VELOCIPEDI.
Come figli:
AUTOVEICOLI -> AUTOARTICOLATI,AUTOSNODATI, AUTOVETTURE;
MOTOVEICOLI -> MOTOCICLI, MOTOCAROZZETTE;
Magari un terzo nodo, (del tipo:MOTOCICLI->NAKED,STRADALI, SCOOTER) e
cosě via…
Ho creato un database con i campi CODICE (chiave, contatore),PADRE
(long),NOME (text), dove le voci root hanno il valore 0 nel campo
PADRE, e i figli hanno il valore del CODICE del padre nel campo PADRE;
Il mio problema č che non riesco a creare un'istruzione
treeview1.nodes.ADD che mi ricrei la struttura ad albero seguendo le
regole prima descritte.
Posso chiedere a qualcuno di voi la stesura di una FORM_LOAD() che mi
faccia apparire la struttura ad albero all'avvio del form?
Grazie,
Gian

Forse si puň fare in maniera piů ottimizzata, comunque io seguirei la
strada che ti propongo: il tuo oggetto ItemLev(TuoLivello) conterrŕ il
nodo che potrŕ fungere da padre, e via via ti puoi popolare eventuali
figli avanzando di livello (io implementando il tuo esempio ho avuto 3
livelli).
Studiati un po' questo codice...
Private Sub Form_Load()
Dim ItemLev(1 To 3) As MSComctlLib.Node
With TreeView1
  .Nodes.Clear
  Set ItemLev(1) = .Nodes.Add()
  ItemLev(1).Text = "AUTOVEICOLI"
  Set ItemLev(2) = .Nodes.Add(ItemLev(1), tvwChild)
  ItemLev(2).Text = "AUTOARTICOLATI"
  Set ItemLev(2) = .Nodes.Add(ItemLev(1), tvwChild)
  ItemLev(2).Text = "AUTOSNODATI"
  Set ItemLev(2) = .Nodes.Add(ItemLev(1), tvwChild)
  ItemLev(2).Text = "AUTOVETTURE"
 
  Set ItemLev(1) = .Nodes.Add()
  ItemLev(1).Text = "MOTOVEICOLI"
  Set ItemLev(2) = .Nodes.Add(ItemLev(1), tvwChild)
  ItemLev(2).Text = "MOTOCICLI"
  Set ItemLev(3) = .Nodes.Add(ItemLev(2), tvwChild)
  ItemLev(3).Text = "NAKED"
  Set ItemLev(3) = .Nodes.Add(ItemLev(2), tvwChild)
  ItemLev(3).Text = "STRADALI"
  Set ItemLev(3) = .Nodes.Add(ItemLev(2), tvwChild)
  ItemLev(3).Text = "SCOOTER"
  Set ItemLev(2) = .Nodes.Add(ItemLev(1), tvwChild)
  ItemLev(2).Text = "MOTOCARROZZETTE"
 
  Set ItemLev(1) = .Nodes.Add()
  ItemLev(1).Text = "VELOCIPEDI"
 
  Set ItemLev(3) = Nothing
  Set ItemLev(2) = Nothing
  Set ItemLev(1) = Nothing
End With
End Sub
Ciao !!!
*Roby*
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Gian
Se ti interessa una cosa dinamica potresti fare una cosa del genere...
Dim NewNode As Node
Dim Rs as RecordSet
' Crei il Recordset Rs
While not Rs.EOF
    Set NewNode = tvTreeView.Nodes.Add( Rs("ParentNode"),  Rs("Child"),
Rs("KeyNode"),  Rs("TextNode"),  Rs("ImmNode"), Rs("ImmSelectedNode"))
    tvTreeView.Nodes(Rs("KeyNode")).Expanded = True
    Rs.MoveNext
Wend
Una cosa del genere potrebbe andare?
Ho ipotizzato che i campi del recordset ci fossero per tutti i parametri.
Metti tu cosa ti serve...
L'ho buttato giů al volo quindi mi scuso se ci sono errori... ^__^
Ciao
-----------------------------------------------------------
Flea
Try To Understand

Ringrazio Roby e Flea per l'aiuto.. questo pomeriggio mi sono anche
"auto-cazziato" perchč dopo una prima mail di aiuto da parte di Roby
gli ho anche risposto che in effetti chiedevo una cosa leggermente
diversa..porca miseria, voglio proprio la pappa pronta?!?!? Mi avete
dato suggerimenti importanti, adesso devo cavarmela da solo!!!
Purtroppo non lavoro piů come programmatore di sw di automazione
industriale da 2 mesi, voglio provare a riciclarmi programmatore di sw
gestionale, e questi comandi di "abbellimento" non sapevo nemmeno cosa
fossero..sono un po' arrugginito, ma devo mandare curriculum a ditte
dove credo mangino pane e treeview, imagelist, ecc... :-))
Ciao e grazie,
