Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Snort en 23 Diciembre 2006, 13:46 pm



Título: Duplicar un item en un listview
Publicado por: Snort en 23 Diciembre 2006, 13:46 pm
  Vereis, eske stoi haciendo un juegecillo, y le estoi poniendo una tabla de maximas puntuaciones, la tabla (listview) tiene 43columnas, por orden son  nombre, tiempo1, tiempo 2, y se guia por la 1º, nombre. El codigo es este:
Código:
MsgBox "Has conseguido un nuevo récord.", vbInformation, "Enhorabuena!!!"
Dim X As ListItem
Set X = Form2.ListView1.ListItems.Add(, , "Pedro")
' Estas dos lineas solo son para añadir datos a la variable tempo, no tienen nada qe ver
If min >= 1 Then Tempo = min & " min, "
If sec >= 1 Or dec >= 1 Then Tempo = Tempo & sec & "," & dec & " seg."
'
X.SubItems(1) = Tempo
X.SubItems(2) = TimSeg
End If
Bueno, pues cuando consigues una maxima puntuacion te la pone bien, pero a la segunda qe consigues te añade los datos de la columna de tiempo1 y tiempo 2, y el nombre (Pedro) qeda intacto.
Alguien sabe como duplicar el item para qe vaya creando mas items iguales y no sobreescriba los existentes?


Título: Re: Duplicar un item en un listview
Publicado por: Hans el Topo en 23 Diciembre 2006, 13:54 pm
nose si te entendi,

Código:
MsgBox "Has conseguido un nuevo récord.", vbInformation, "Enhorabuena!!!"
Dim X As new form2.Listview1.lisitems

' Estas dos lineas solo son para añadir datos a la variable tempo, no tienen nada que ver
If min >= 1 Then Tempo = min & " min, "
If sec >= 1 Or dec >= 1 Then Tempo = Tempo & sec & "," & dec & " seg."
'
X.SubItems(0) = "Pepe"
X.SubItems(1) = Tempo
X.SubItems(2) = TimSeg

form.listview1.listitems.add X
End If


Título: Re: Duplicar un item en un listview
Publicado por: CeLaYa en 23 Diciembre 2006, 14:19 pm
podrías explicarlo de otra manera no entiendo muy bien, con ese código debería estar agregandote un item cadavez que lo ejecutes, checa si no tienes un ListView.ListItems.Clear o algo así


Título: Re: Duplicar un item en un listview
Publicado por: Hans el Topo en 23 Diciembre 2006, 14:24 pm
aligual lo que hace es machacar todo el rato el mismo objeto y por eso no se lo agrega


Título: Re: Duplicar un item en un listview
Publicado por: ~~ en 23 Diciembre 2006, 14:26 pm
Pueva a simplemente a agregar un objeto y luego lo ordena por el tiempo (el de menor tiempo arriba) y ya esta  ;) Mira a ver y nos cuentas

1S4ludo


Título: Re: Duplicar un item en un listview
Publicado por: Snort en 23 Diciembre 2006, 14:32 pm
aligual lo que hace es machacar todo el rato el mismo objeto y por eso no se lo agrega
Efectivamente, eso es lo qe hace, no me he explicao muy bien

Pueva a simplemente a agregar un objeto y luego lo ordena por el tiempo (el de menor tiempo arriba) y ya esta  ;) Mira a ver y nos cuentas

1S4ludo
lo tengo en sorted = true y sortkey = 2, es decir, siempre me los ordena por tiempo 2 mayor, pero al machacarlo encima, el nombre se duplica, y el tiempo 1 y tiempo2 se suman a los anteriores (suma de frase, [frase+frase] no suma numerica)


Título: Re: Duplicar un item en un listview
Publicado por: Hans el Topo en 23 Diciembre 2006, 15:00 pm
ahora no me acuerdo como se hacia para agregar objetos y que no se destruyesen ni osbreescribiesen y mira que lo tuve que hacer con panels xD

lo que se me ocurre ahora es que crees un array de objetos

Código:
'esto por el general
dim x(42) as new form2.listview1.lisitems
dim indice as integer


'esto en tu procedimiento
on error goto actimel
MsgBox "Has conseguido un nuevo récord.", vbInformation, "Enhorabuena!!!"

' Estas dos lineas solo son para añadir datos a la variable tempo, no tienen nada que ver
If min >= 1 Then Tempo = min & " min, "
If sec >= 1 Or dec >= 1 Then Tempo = Tempo & sec & "," & dec & " seg."
'
X(indice).SubItems(0) = "Pepe"
X(indice).SubItems(1) = Tempo
X(indice).SubItems(2) = TimSeg

form.listview1.listitems.add X(indice)

indice=indice+1


End If
exit sub
actimel:
   msgbox "Existen 43 objetos puntuaciones en la clasificacion..."


Título: Re: Duplicar un item en un listview
Publicado por: CeLaYa en 23 Diciembre 2006, 15:11 pm
aver vamos a ver si entendí. Lo que quieres hacer es que cuando agregas un Item te muestre:

Nombre   Tiempo1            Tiempo2
Pedro           1                     1

y si vas agregando más items ponga:

Nombre   Tiempo1            Tiempo2
Pedro           1                     1
Pedro           2                     2

bueno si el problema es el objeto "x" pues quitalo, y pones tú código así:

Código:
Listview1.ListItems.add ,,"Pedro"
Listview1.ListItems.subitems(1) = tiempo1
Listview1.ListItems.subitems(2) = tiempo2



Título: Re: Duplicar un item en un listview
Publicado por: Snort en 23 Diciembre 2006, 16:13 pm
   Gracias a todos por las respuestas ya lo he solucionado, habian algunos errores pekeñitos por ahi... xD

Saludos ;)