Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Septiembre 27, 2014, 12:35:43 pm

Título: Evitar que se duplique la clave del ImageList
Publicado por: E N T E R en Septiembre 27, 2014, 12:35:43 pm
Hola tengo un ImageList que le voy agregando manualmente las imagenes, el problema que tengo es que no puedo controlar la clave por que si vuelvo a ingresar una imagen 2 veces me da error de  clave duplicada.

Este es mi codigo pero no me esta funcionando.

Código: (VB) [Seleccionar]
Private Sub Command1_Click()
           
    Dim xClave As String
    Dim PicTemp As StdPicture
   
    With dlg
       
        .Filter = "JPG|*.jpg"
        .DialogTitle = " Selecciona la imagen del artículo "
        .Filename = ""
        .ShowOpen
       
        If .Filename = "" Then Exit Sub
       
        xClave = Left(Extraer(.Filename, "\"), (Len(Extraer(.Filename, "\")) - 4))
               
        Set PicTemp = LoadPicture(.Filename)
       
        If ImageList1.ListImages.Count = 0 Then
            Set imgX = ImageList1.ListImages.Add(, xClave, PicTemp)
        Else
                   
            For i = 1 To ImageList1.ListImages.Count
                               
                If ImageList1.ListImages(i).Key = xClave Then
                    MsgBox "Esta imagen ya se encuentra en la lista", vbInformation
                Else
                    Set imgX = ImageList1.ListImages.Add(, xClave, PicTemp)
                End If
               
            Next i
           
        End If
       
    End With

End Sub
Título: Re:Evitar que se duplique la clave del ImageList
Publicado por: Albertomi en Septiembre 27, 2014, 01:50:32 pm
Estimado ENTER
 
Como no das luces de cuál es tu regla de negocio para adicionar las imágenes, me lanzo a proponerte dos alternativas. La primera, que uses como nombre un número incremental secuencial. La segunda, que al actual nombre le asignes un número incremental secuencial.
 
Saludos, desde algú lugar de Lima-Perú
Título: Re:Evitar que se duplique la clave del ImageList
Publicado por: E N T E R en Septiembre 27, 2014, 02:18:15 pm
Hola, la clave quiero que sea el nombre del archivo si o si por que esa clave se guarda en una bd que mas adelante lo voy a usar. Lo unico que quiero evitar es que se agrege la misma imagen en el ImageList

Aca esta el source: https://dl-web.dropbox.com/get/Carpeta-Publica/imgList.rar?_subject_uid=1620644&w=AADjGF3HCZ15MG51j7vc2oAgtigwOfR_sc7HGg2GYHKuZg&dl=1 (https://dl-web.dropbox.com/get/Carpeta-Publica/imgList.rar?_subject_uid=1620644&w=AADjGF3HCZ15MG51j7vc2oAgtigwOfR_sc7HGg2GYHKuZg&dl=1)

Saludos...
Título: Re:Evitar que se duplique la clave del ImageList
Publicado por: AxioUK en Septiembre 27, 2014, 05:14:54 pm
Amigo ENTER, no se puede descargar los fuentes, la carpeta aparece como bloqueada...
Título: Re:Evitar que se duplique la clave del ImageList
Publicado por: E N T E R en Septiembre 27, 2014, 05:52:36 pm
Aca en MediaFire

https://www.mediafire.com/?wg57as3q3d0w7ga (https://www.mediafire.com/?wg57as3q3d0w7ga)
Título: Re:Evitar que se duplique la clave del ImageList
Publicado por: LeandroA en Septiembre 28, 2014, 12:24:30 am
hola Enter, no probe el codigo pero asi a la ligeras, el error estaria aca

Código: [Seleccionar]
                If ImageList1.ListImages(i).Key = xClave Then
                    MsgBox "Esta imagen ya se encuentra en la lista", vbInformation
                Else
                    Set imgX = ImageList1.ListImages.Add(, xClave, PicTemp)
                End If

aver si probas asi

Código: [Seleccionar]
Private Sub Command1_Click()
           
    Dim xClave As String
    Dim PicTemp As StdPicture
   
    With dlg
       
        .Filter = "JPG|*.jpg"
        .DialogTitle = " Selecciona la imagen del artículo "
        .Filename = ""
        .ShowOpen
       
        If .Filename = "" Then Exit Sub
       
        xClave = Left(Extraer(.Filename, "\"), (Len(Extraer(.Filename, "\")) - 4))
               
        Set PicTemp = LoadPicture(.Filename)
       
        If ImageList1.ListImages.Count = 0 Then
            Set imgX = ImageList1.ListImages.Add(, xClave, PicTemp)
        Else
                   
            For i = 1 To ImageList1.ListImages.Count
                               
                If ImageList1.ListImages(i).Key = xClave Then
                    MsgBox "Esta imagen ya se encuentra en la lista", vbInformation
                    Exit sub
                End If
               
            Next i

            Set imgX = ImageList1.ListImages.Add(, xClave, PicTemp)
           
        End If
       
    End With
 
End Sub
Título: Re:Evitar que se duplique la clave del ImageList
Publicado por: E N T E R en Septiembre 29, 2014, 09:25:49 am
Maquina Leandro, ahi funciona de lujo, muchas gracias.

Saludos...