elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  problema con imagelist y listview
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema con imagelist y listview  (Leído 8,737 veces)
SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
problema con imagelist y listview
« en: 24 Agosto 2009, 15:46 pm »

bueno, tengo un problema al poner iconos en un listview.

lo que hago es cargar al principio los iconos en un imagelist, y lego cuando añado los items al listview en la parte de icono le digo que ponga el listimage(x) del imagelist.

pero a la hora de ejecutar el programa me da un fallo que dice que para usar el imagelist primero debo inicializarlo.

espero que alguien pueda ayudare. aqui dejo el codigo para que lo veais

Código
  1. Public Function cargar_imgs()
  2.  
  3. Dim indice As Integer
  4. Dim img As ListImage
  5. Dim directorio As String
  6.  
  7. directorio = App.path & "\iconos"
  8.  
  9. For indice = 1 To 8
  10.  
  11.  
  12.    Form5.Picture1.Picture = LoadPicture(directorio & "\" & indice & ".jpg")
  13.    Set img = Form5.ImageList1.ListImages.Add(indice, , Form5.Picture1.Picture)
  14.  
  15. Next indice
  16.  
  17.  
  18.  
  19. End Function

Código
  1. Public Function llenar_list()
  2.  
  3. Dim contador As Integer
  4. Dim item As ListItem
  5. Dim tamaño As Double
  6.  
  7. Form5.ListView1.ColumnHeaders.Clear
  8.  
  9. Form5.ftp.GetTextDirListing "*.*"
  10. Form5.ListView1.ListItems.Clear
  11.  
  12. contador = 0
  13.  
  14. Form5.ListView1.ColumnHeaders.Add , , "Files", Form5.ListView1.Width / 2
  15. Form5.ListView1.ColumnHeaders.Add , , "Size", Form5.ListView1.Width / 2
  16.  
  17. Do While Form5.ftp.GetFilename(contador) <> ""
  18.  
  19.    If InStr(LCase(Form5.ftp.GetFilename(contador)), ".jpg") <> 0 Then
  20.  
  21.        Set item = Form5.ListView1.ListItems.Add(, , Form5.ftp.GetFilename(contador), Form5.ImageList1.ListImages(1))
  22.  
  23.    End If
  24.  
  25.    If InStr(LCase(Form5.ftp.GetFilename(contador)), ".rar") <> 0 Then
  26.  
  27.        Set item = Form5.ListView1.ListItems.Add(, , Form5.ftp.GetFilename(contador), Form5.ImageList1.ListImages(6))
  28.  
  29.    End If
  30.  
  31.    If InStr(LCase(Form5.ftp.GetFilename(contador)), ".txt") <> 0 Then
  32.  
  33.        Set item = Form5.ListView1.ListItems.Add(, , Form5.ftp.GetFilename(contador), Form5.ImageList1.ListImages(7))
  34.  
  35.    End If
  36.  
  37.    If InStr(LCase(Form5.ftp.GetFilename(contador)), ".pdf") <> 0 Then
  38.  
  39.        Set item = Form5.ListView1.ListItems.Add(, , Form5.ftp.GetFilename(contador), Form5.ImageList1.ListImages(8))
  40.  
  41.    End If
  42.  
  43.    If InStr(LCase(Form5.ftp.GetFilename(contador)), ".mp3") <> 0 Then
  44.  
  45.        Set item = Form5.ListView1.ListItems.Add(, , Form5.ftp.GetFilename(contador), Form5.ImageList1.ListImages(2))
  46.  
  47.    End If
  48.  
  49.    If InStr(LCase(Form5.ftp.GetFilename(contador)), ".avi") <> 0 Or InStr(LCase(Form5.ftp.GetFilename(contador)), ".mpg") <> 0 Or InStr(LCase(Form5.ftp.GetFilename(contador)), ".mpeg") <> 0 Then
  50.  
  51.        Set item = Form5.ListView1.ListItems.Add(, , Form5.ftp.GetFilename(contador), Form5.ImageList1.ListImages(3))
  52.  
  53.    End If
  54.  
  55.     If InStr(LCase(Form5.ftp.GetFilename(contador)), ".doc") <> 0 Then
  56.  
  57.        Set item = Form5.ListView1.ListItems.Add(, , Form5.ftp.GetFilename(contador), Form5.ImageList1.ListImages(6))
  58.  
  59.    End If
  60.  
  61.  
  62.  
  63.    tamaño = Val(Form5.ftp.GetSize(contador)) / 1022
  64.    item.SubItems(1) = Val(Mid(Str(tamaño), 1, 4)) & " " & "Kb"
  65.  
  66.    contador = contador + 1
  67.  
  68. Loop
  69.  
  70. End Function

bueno, se que el codigo se peude optimizar y el programa esta hecho con chilkatftp2, no con un API.
pero cualquier critica y consejo sera bien recibido

saludos


« Última modificación: 24 Agosto 2009, 22:33 pm por SRVAM » En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
yovaninu


Desconectado Desconectado

Mensajes: 349



Ver Perfil
Re: problema con imgalist y listview
« Respuesta #1 en: 24 Agosto 2009, 17:09 pm »

quiza te sirva este codigo
http://foro.elhacker.net/programacion_vb/como_poner_icono_a_un_listview1-t255963.0.html;msg1241543#msg1241543


En línea

SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: problema con imagelist y listview
« Respuesta #2 en: 26 Agosto 2009, 02:38 am »

sigue sin funcionarme, sera una tonteria pero no lo veo. me da un error que dice que el imagelist debe ser inicializado antes de usarlo. pero no se a que se refiere con eso :S
En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: problema con imagelist y listview
« Respuesta #3 en: 26 Agosto 2009, 03:24 am »

Te pregunto: El Form5 que aparece... está cargado???

Si haces referencia a un form desde un modulo, te conviene usar una variable global (a nivel modulo), que contenga una instancia del formulario

Eso seria:

Código:
Dim f5 as Form5

Luego, f5 es un objeto del tipo Form, que aun no ha sido instanciado, pero que puede ser accedido desde cualquier punto de tu aplicación.

Para intanciarlo, cargarlo y mostrarlo (por ej.), basta con hacer:

Código:
Set f5 = New Form5
Load f5
f5.Show

Creo que es por eso que te sale el error.

Saludos!


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: problema con imagelist y listview
« Respuesta #4 en: 26 Agosto 2009, 03:28 am »

Hola, ¿ al listview le enlazaste el ImageList desde las propiedades ? igualmente para cargar las imagenes lo podes hacer en tiempo de diseño, no cargar las imagenes en tiempo de ejecución.

saludos.
En línea

SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: problema con imagelist y listview
« Respuesta #5 en: 26 Agosto 2009, 15:18 pm »

el form 5 si esta activado, de echo es el main.

lo que he hecho es en vez de cargar las imagenes en ejecucion en el imagelist las he añadido en el diseño, pero aun asi no me funciona. el codigo que tengo seria este (pero para un icono, todavia no hago ningun bucle para saber que tipo de archivo es y elegir un icono u otro)

Código
  1. Public Function llenar_list()
  2.  
  3. Dim contador As Integer
  4. Dim item As ListItem
  5. Dim tamaño As Double
  6.  
  7. Form5.ListView1.ColumnHeaders.Clear
  8.  
  9. Form5.ftp.GetTextDirListing "*.*"
  10. Form5.ListView1.ListItems.Clear
  11.  
  12. contador = 0
  13.  
  14. Form5.ListView1.ColumnHeaders.Add , , "Files", Form5.ListView1.Width / 2
  15. Form5.ListView1.ColumnHeaders.Add , , "Size", Form5.ListView1.Width / 2
  16.  
  17.  
  18. Do While Form5.ftp.GetFilename(contador) <> ""
  19.  
  20.    Set item = Form5.ListView1.ListItems.Add(, , Form5.ftp.GetFilename(contador), Form5.ImageList1.ListImages(6))   'aqui el imagelist deberia poner el icono en el list
  21.  
  22.    tamaño = Val(Form5.ftp.GetSize(contador)) / 1022
  23.    item.SubItems(1) = Val(Mid(Str(tamaño), 1, 4)) & " " & "Kb"
  24.  
  25.    contador = contador + 1
  26.  
  27. Loop
  28.  
  29. End Function

a ver como consigo hacerlo porque no se me ocurre como :S
En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: problema con imagelist y listview
« Respuesta #6 en: 26 Agosto 2009, 16:33 pm »

Perdona pero así no es...

Debes indicarle al ListView que tiene enlazado un ImageList. Luego en el Codigo, indicas el Index del Icono. Los iconos cargalos en tiempo de Diseño.

Este es el Codigo que debe tener al momento de cargar la info en el ListView.
Código
  1.  
  2. Form5.ListView1.ListItems.Add(, , Form5.ftp.GetFilename(contador), 6)  
  3. 'El numero "6" identifica la posicion que tiene el icono dentro del ImageList.
  4.  
  5.  

Selecciona el ListView con click derecho y dale a propiedades.
Te vas a la pestaña de Lista de Imagenes. Y donde dice Normal o Pequeño, seleccionas el ImageList.
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: problema con imagelist y listview
« Respuesta #7 en: 27 Agosto 2009, 00:48 am »

gracias ssccaann43  ahora si que funciona.
ahora hay otro problemilla, y es que esta en el listview el item, pero no aparece el icono, en el margen izquierdo esta el hueco, pero no aparece el icono :S cuantos problemas me esta dando esta tonteria, perdon si me pongo pesado amigos.
En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema rellenando ListView
.NET (C#, VB.NET, ASP)
quiqueroal 2 3,543 Último mensaje 3 Mayo 2011, 22:15 pm
por quiqueroal
Problema con listview
Programación Visual Basic
hackertotal22 2 3,546 Último mensaje 13 Julio 2011, 10:25 am
por hackertotal22
Recuperar imagen de BD cargar en Imagelist y mostrar en ListView
.NET (C#, VB.NET, ASP)
enterariel 3 6,238 Último mensaje 11 Agosto 2012, 03:40 am
por enterariel
(SOLUCIONADO) Problema con Listview
.NET (C#, VB.NET, ASP)
Eleкtro 3 3,055 Último mensaje 6 Agosto 2013, 20:53 pm
por Eleкtro
Extraño problema y conflicto con los ListView
Programación Visual Basic
RiasChan 1 2,474 Último mensaje 15 Junio 2019, 00:36 am
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines