Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema con listview iconos

Estas en el tema de Problema con listview iconos en el foro de Visual Basic clásico en Foros del Web. Bien estoy tratando que en el listview salgan pequeños iconos del archivo seleccionado con un common dialo y me sale este error: Compile erro: Wrong ...
  #1 (permalink)  
Antiguo 02/07/2008, 18:14
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 4 meses
Puntos: 3
Problema con listview iconos

Bien estoy tratando que en el listview salgan pequeños iconos del archivo seleccionado con un common dialo y me sale este error:

Compile erro:

Wrong numbers o arguments or invalid property assignment

Y no se por que si ya rebice todo el codigo, se supone que cuando de click sale el cuadro de dialogo, se selleciona archivo y salen los datos en el listview pero sale error mencionado enteriormente al hacer click

Código:
Private Sub CommandXP1_Click()

CD.DialogTitle = "Selecciona el archivo"
CD.Filter = "Todos los archivos *.*"
CD.ShowOpen



Dim x As ListItem

Set x = Lv1.ListItems.Add(, , CD.FileTitle, , icono(CD.FileName))
x.SubItems(1) = CD.FileName
x.SubItems(2) = FileLen(CD.FileName) & " bytes"
x.SubItems(3) = "Windows"
x.SubItems(4) = "Si"
x.SubItems(5) = "Visible"

end sub
No veo problema dejo codigo de funcion icono por si acaso el error esta alli

Código:
Const DI_MASK = &H1
Const DI_IMAGE = &H2
Const DI_NORMAL = DI_MASK Or DI_IMAGE
Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long
Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long
Dim CuentaIcon As Integer

Function icono(Ruta As String)
    Dim Icon As Long
    
    Form1.Picture2.BackColor = vbWhite
    
    Icon = ExtractAssociatedIcon(App.hInstance, Ruta, 2)
    DrawIconEx Form1.Picture2.hdc, 1, 0, Icon, 16, 16, 0, 0, DI_NORMAL
    DestroyIcon Icon

    SavePicture Form1.Picture2.Image, Environ("HOMEDRIVE") & "\temp.bmp"
    CuentaIcon = CuentaIcon + 1
    
    Form1.IL.ListImages.Add CuentaIcon, , LoadPicture(Environ("HOMEDRIVE") & "\Temp.bmp")
    
    Kill Environ("HOMEDRIVE") & "\Temp.bmp"
    icono = CuentaIcon
End Function

Alguien me puede ayudar?

Última edición por Carlmycol; 02/07/2008 a las 21:40
  #2 (permalink)  
Antiguo 03/07/2008, 01:01
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Problema con listview iconos

Hola!

No puedes cargar directamente las imágenes en la ListView, para ello debes añadir un control ImageList y enlazarlo dentro de la propiedad "(Personalizado)" en la solapa "Listas de imágenes", en la combobox que corresponda, según como y dónde quieras los iconos.

Después, debes cargar las imágenes en el ImageList, bien en tiempo de diseño, o bien con el método ListImages.Add y en la llamada al método Add de la ListView, en lugar de pasarle el archivo, le pasas el índice con que has agregado la imagen.

Espero haberme explicado, no puedo ponerte un ejemplo de código ahora mismo
  #3 (permalink)  
Antiguo 03/07/2008, 08:19
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Problema con listview iconos

Seria LI.ImageList(icono(CD.FileName)) en vez de icono(CD.FileName)

salu2
  #4 (permalink)  
Antiguo 03/07/2008, 13:28
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Problema con listview iconos

Cita:
Iniciado por Carlmycol Ver Mensaje
Seria LI.ImageList(icono(CD.FileName)) en vez de icono(CD.FileName)

salu2
No, para empezar debes enlazar el ImageList al ListView, ya sea en diseño o mediante código:
Código:
Set ListView.SmallIcons = ImageList
Debes cargar la imagen al ImageList. Así:
Código:
ImageList1.ListImages.Add , , icono(CD.FileName)
Y para hacer referencia a ella usas su Index o su Key:
Código:
ListView.ListItems.Add , , "Item", , 1 'En este caso la primera imagen del ImageList
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 03/07/2008, 18:56
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Problema con listview iconos

Gracias ahora si lo logre, me volvi a ahogar en un baso de agua

salu2, Gracias otra ves
  #6 (permalink)  
Antiguo 04/07/2008, 11:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Problema con listview iconos

Cita:
Iniciado por Carlmycol Ver Mensaje
Gracias ahora si lo logre, me volvi a ahogar en un baso de agua

salu2, Gracias otra ves
De nada, Carlmycol.
Esperamos verte más seguido por aquí...
Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:58.