Limite numero nodi del treeview vb6 [santi caltabiano].txt blocco note
1. Limite numero nodi del Treeview VB6 [Santi Caltabiano].txt
LIMITE NUMERO NODI DEL COMPONENTE TREEVIEW
I nodi del treeview sono indicizzati mediante un index di tipo integer.
Un integer può rappresentare un numero compreso tra -32767 e +32767.
Tuttavia un treeview supporta la visualzzazione 65536 nodi.
1) Non utilizzare i riferimenti ai nodi mediante Node.index ed utilizzare
Node.key
2) Non utilizzare la proprietà Treeview.Nodes.Count (superati i 32767 nodi
questa proprietà restituisce un
valore negativo). Utilizzare un'api:
Private Const TVM_GETCOUNT = &H1105&
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal
hwnd As Long, ByVal wMsg As Long, ByVal _
wParam As Long, lParam As Any) As Long
....
dim count as Long
count=SendMessage(TreeView1.hwnd, TVM_GETCOUNT, 0, ByVal 0)
3) Se un nodo prevede sottonodi allora bisogna riepirlo soltanto quando si
espande il nodo (da evento)
4) In merito al punto precedente nasce il problema che se un nodo non ha filgio
allora il treeview non
mostra la maniglietta per l'espansione/compressione. Alcuni programmatori
aggiungono un sottonodo
di comodo. Questo può andare bene se il numero dei nodi non è elevato.
Infatti se ad esempio si
devono caricare 30000 con questo approccio se ne dovranno caricare 60000!!!
Un approccio più
efficiente è quello di aggiungere il sottonodo di comodo con l'elevento
mouseMove.
Pagina 1