Newsgroup: it.comp.lang.visual-basic
Titolo: Muoversi in una listview....

Sono veramente scarso con vb...e me ne scuso....
Comunque....
Sto cercando di muovermi in una listview....
Ho per esempio una listview con 5 righe
Devo calcolarmi il la somma dei campi  nei subitems(3).
Allora ho pensato di farmi un ciclo for next con i che va da 1 a
listitems.count (in questo caso 5)
Il mio problema è che non riesco ad usare la proprietà index...
Infatti vorrei fare questo...
i = 1
prendi la riga 1 della listview
estrai il valore nel subitems(3)
next
i = 2
prendi la riga 2 della listview.....
etcetcetc
Ho cercato di usare per selezionare la i-esima riga
listview1.listitems.index(i) ...
ma ottengo un errore che dice
"Utilizzo non valido di property"
Qualcuno che sa darmi il codice giusto????
Grazie mille
IAK

PiantoTardivo ha scritto:

Private Sub Command1_Click()
    Dim j As Long, t As Long
    For j = 1 To LV.ListItems.Count
        t = t + LV.ListItems(j).SubItems(3)
    Next
    MsgBox t
End Sub
ciao, j.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Grazie mille...
Io di solito pongo
Dim j as integer....
Che differenze ci sono nel porre j as long ????

 Che differenze ci sono nel porre j as long ????
per me, essenzialmente, che se un ciclo supera i 32k non crolla, e quando
dichiaro le variabili di solito ho in mente cosa dovranno fare ma non su che
ampiezza. steso e testato il codice, non sarebbe male usare quel che serve,
anche se in realta' su programmi semplici e con qualche gb di ram non sono
20 o 30 byte in piu' a pesare. alla fine, e' raro che usi numerici non long.
su una tabellona di qualche milione di righe, pero', ricordo che si
sprecavano decine di mb usando i long a caso, quindi l'uso dipende sempre
dall'insieme.
poi tempo fa mi sembra qualcuno dicesse che nei sistemi a 32 bit il long e'
la parola di sistema, e dovrebbe essere piu' efficiente. ma non mi spingo a
tanto.
ciao, j.

 ciao, 
j.
YES!!!!


ottieni un piccolo vantaggio a 
dichiarare


dim pippo as 
long


invece che dim pippo as 
integer


 


da notare che...


l'ho trovato sull'help di 
NET


in net si ribalta di nuovo 
tutto


e consigliano di 
fare


dim pippoNet as 
integer


perchè è diventato a 32 bit 
l'integer!


 


se mi consenti un post in 
html!


riporto dall'help 
dell'sdk




Visual Basic .NET updates the integer data types for interoperability with 
other programming languages and with the common language runtime. 


The following table shows correspondences between integer types in Visual 
Basic 6.0 and Visual Basic .NET. 










Integer Size 


Visual Basic 6.0 type and type character 


Visual Basic .NET type and type character 


Common language runtime type




8 bits, signed 


(none) 


(none) 


System.SByte
 




16 bits, signed 


Integer
 (
%
) 


Short
 (none) 


System.Int16 




32 bits, signed 


Long
 (
&
) 


Integer
 (
%
) 


System.Int32 




64 bits, signed 


(none) 


Long
 (
&
) 


System.Int64 


On 32-bit systems, 32-bit integer operations are faster than either 16-bit or 
64-bit integer operations. This means that in Visual Basic .NET, 
Integer
 
is the most efficient and fundamental numeric type. You can improve performance 
in your applications by changing your 
Long
 declarations to 
Integer
 
when you migrate to Visual Basic .NET. 


Note
   If you are 
  interfacing with components created on platforms other than Visual Basic .NET, 
  you must take care that your data types correspond to those of the other 
  components. For example, if you use a 
Declare
 statement to refer to an 
  external procedure created in Visual Basic 6.0, and the procedure defines an 
  
Integer
 argument (two bytes in Visual Basic 6.0), you must identify 
  that argument as 
Short
 in the 
Declare
 statement, because that is 
  the two-byte integer type in Visual Basic .NET.


-- 
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" 



 invece che dim pippo as integer
mi ricordo che anni fa avevo provato
ieri sera di nuovo, ma dopo avere impallato la cpu e ottenuto varie volte
overflow non sono riuscito a finire. inoltre questi test valgono pochino
in multitask.
comunque anni fa con cicli simili, fra dim as byte, integer e long vinceva
nettamente il byte :)
ora non ho proprio tempo. se hai un attimo, prova a s/commentare qualche
for nel codice qui sotto. ci vogliono solo un command1 e un text1
multiline. senza doevents sarebbe meglio, ma dato che ci sta un po'...
vedi tu (considera che anche li' avevo provato, e col doevents era
nettamente piu' veloce. boh :)
ciao, j.
Option Explicit
Private Sub Command1_Click()
    Dim t
 
    Dim b As Byte, bb As Byte, bbb As Byte, bbbb As Byte, bbbbb As Byte,
bbbbbb As Byte
 
    Dim i As Integer, ii As Integer, iii As Integer, iiii As Integer,
iiiii As Integer, iiiiii As Integer
 
    Dim l As Long, ll As Long, lll As Long, llll As Long, lllll As Long,
llllll As Long
 
    Dim c As Currency
 
    Text1 = Text1 & vbNewLine
 
    c = 0: t = Timer
    For b = 0 To 254
        For bb = 0 To 254
            For bbb = 0 To 254
                For bbbb = 0 To 254
'                    For bbbbb = 0 To 254
'                        For bbbbbb = 0 To 254
                            c = c + 1
                            If c Mod 10000 = 0 Then Caption = Format(c,
"###,###,###,###,###"): DoEvents
                        Next
'                    Next
'                Next
            Next
        Next
    Next
    Text1 = Text1 & Format(Timer - t, "000,000") & vbNewLine
 
    c = 0: t = Timer
    For i = 0 To 254
        For ii = 0 To 254
            For iii = 0 To 254
                For iiii = 0 To 254
'                    For iiiii = 0 To 254
'                        For iiiiii = 0 To 254
                            c = c + 1
                            If c Mod 10000 = 0 Then Caption = Format(c,
"###,###,###,###,###"): DoEvents
'                        Next
'                    Next
                Next
            Next
        Next
    Next
    Text1 = Text1 & Format(Timer - t, "000,000") & vbNewLine
 
    c = 0: t = Timer
    For l = 0 To 254
        For ll = 0 To 254
            For lll = 0 To 254
                For llll = 0 To 254
'                    For lllll = 0 To 254
'                        For llllll = 0 To 254
                            c = c + 1
                            If c Mod 10000 = 0 Then Caption = Format(c,
"###,###,###,###,###"): DoEvents
'                        Next
'                    Next
                Next
            Next
        Next
    Next
    Text1 = Text1 & Format(Timer - t, "000,000") & vbNewLine
 
 
End Sub
