canal visual basic .net

Recursos Visual Basic.NET, VB.NET, Manuales de programación, Tutoriales, Foros de programación, Comunidad de programadores

Usuarios activos:  31

Foros de programación, recursos, tutoriales, sistemas operativos...

Bienvenido a la zona de foros. Participa en alguno de nuestros foros: Foros de visual basic, foros de visual basic.net foros de Crystal reports, programas gratis, foros de C++ - C# , foros de Java, foros de PHP, foros de ASP.net. Seguro que hay un foro que te servirá de gran utilidad y si no lo encuentras avísanos y crearemos uno nuevo.
Resultados 1 al 6 de 6
  1. #1
    elkuki1981 está desconectado Junior Member Iniciad@
    Fecha de ingreso
    01 sep, 12
    Mensajes
    3

    Predeterminado Imagen aleatoria

    Buenas a todos, soy nuevo en el foro estoy intentando aprender vb6...

    Tengo este codigo para cargar imagenes aleatortias desde app.path:

    Código:
    Private Sub Form_Load()
    File1.Pattern = "*.jpg;*.bmp;*.Gif"
    File1 = App.Path
    End Sub
    
    
    Private Sub Command1_Click()
    
    If File1.ListCount <= 0 Then
            MsgBox "No hay archivos de imagen en el directorio"
    Else
            Dim aleatorio As Integer
            aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
            Image1.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    
            
            aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
            Image2.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    
            
            aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
            Image3.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    
    
    End If
    End Sub
    El problema es que mi idea es que cuando las 3 imagenes sean iguales salga un msgbox a ver si alguien me puede ayudar se lo agradeceria mucho...
    Saludos a tod@s y gracias de antemano

  2. #2
    RoyMata está desconectado Senior Member Avanzad@
    Fecha de ingreso
    06 ago, 11
    Ubicación
    Cartago, Costa Rica
    Mensajes
    178

    Predeterminado

    No se si capté bien tu idea pero me imagino que lo que quieres es comparar las imagenes una vez cargadas en los respectivos ImageBox y si las 3 imagenes con iguales entonces alertar con un MsgBox.
    Si es asi, entonces despues de cargar las imagenes en la sentencia Else puedes hacer algo como esto:
    Código:
    1. If (Image1.Picture = Image2.Picture) And (Image2.Picture = Image3.Picture) Then
    2.      MsgBox "Las imagenes son iguales"
    3. End If
    Puedes colocar un Refresh antes de la verificacion para asegurar que las imagenes fueron cargadas:
    Código:
    1. Image1.Refresh
    2. Image2.Refresh
    3. Image3.Refresh

  3. #3
    elkuki1981 está desconectado Junior Member Iniciad@
    Fecha de ingreso
    01 sep, 12
    Mensajes
    3

    Predeterminado Imagen aleatoria

    Cita Iniciado por RoyMata Ver mensaje
    No se si capté bien tu idea pero me imagino que lo que quieres es comparar las imagenes una vez cargadas en los respectivos ImageBox y si las 3 imagenes con iguales entonces alertar con un MsgBox.
    Si es asi, entonces despues de cargar las imagenes en la sentencia Else puedes hacer algo como esto:
    Código:
    1. If (Image1.Picture = Image2.Picture) And (Image2.Picture = Image3.Picture) Then
    2.      MsgBox "Las imagenes son iguales"
    3. End If
    Puedes colocar un Refresh antes de la verificacion para asegurar que las imagenes fueron cargadas:
    Código:
    1. Image1.Refresh
    2. Image2.Refresh
    3. Image3.Refresh
    Antes ke nada gracias por tu respuesta
    Resulta ke puse el code tal y como me dijiste de manera ke kedó así:

    Código:
    Private Sub Form_Load()
    File1.Pattern = "*.jpg;*.bmp;*.Gif"
    File1 = App.Path
    End Sub
    
    Private Sub Label1_Click()
    
    If File1.ListCount <= 0 Then
            MsgBox "No hay archivos de imagen en el directorio"
    Else
            Dim aleatorio As Integer
            aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
            Image1.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    
            aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
            Image2.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    
            aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
            Image3.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    
    End If
        
    Image1.Refresh
    Image2.Refresh
    Image3.Refresh
    
        If (Image1.Picture = Image2.Picture) And (Image2.Picture = Image3.Picture) Then
             MsgBox "Las imagenes son iguales"
        End If
    
    End Sub
    Pero cuando las imagenes son iguales no sale el msgbox sin embargo si no hay imagenes en la carpeta sale el primer msgbox diciendo ke no hay imagenes en el directorio y después el segundo msgbox diciendo ke las imagenes son iguales... No se porké pasa esto..

  4. #4
    RoyMata está desconectado Senior Member Avanzad@
    Fecha de ingreso
    06 ago, 11
    Ubicación
    Cartago, Costa Rica
    Mensajes
    178

    Predeterminado

    El problema que tienes es con la posicion que le das al codigo. Esas lineas deben estar en la sentencia Else de tu condicional If. El codigo del evento Click para el control Label1 debe quedar de esta forma:
    Código:
    1. Private Sub Label1_Click()
    2. If File1.ListCount <= 0 Then
    3.         MsgBox "No hay archivos de imagen en el directorio"
    4. Else
    5.         Dim aleatorio As Integer
    6.         aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
    7.         Image1.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    8.  
    9.         aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
    10.         Image2.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    11.  
    12.         aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
    13.         Image3.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    14.         Image1.Refresh
    15.         Image2.Refresh
    16.         Image3.Refresh
    17.         If (Image1.Picture = Image2.Picture) And (Image2.Picture = Image3.Picture) Then
    18.                MsgBox "Las imagenes son iguales"
    19.         End If
    20. End If
    21. End Sub

  5. #5
    elkuki1981 está desconectado Junior Member Iniciad@
    Fecha de ingreso
    01 sep, 12
    Mensajes
    3

    Predeterminado Imagen aleatoria

    Cita Iniciado por RoyMata Ver mensaje
    El problema que tienes es con la posicion que le das al codigo. Esas lineas deben estar en la sentencia Else de tu condicional If. El codigo del evento Click para el control Label1 debe quedar de esta forma:
    Código:
    1. Private Sub Label1_Click()
    2. If File1.ListCount <= 0 Then
    3.         MsgBox "No hay archivos de imagen en el directorio"
    4. Else
    5.         Dim aleatorio As Integer
    6.         aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
    7.         Image1.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    8.  
    9.         aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
    10.         Image2.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    11.  
    12.         aleatorio = Int(((File1.ListCount - 1)) * -1 * Rnd + File1.ListCount - 1)
    13.         Image3.Picture = LoadPicture(App.Path + "\" + File1.List(aleatorio))
    14.         Image1.Refresh
    15.         Image2.Refresh
    16.         Image3.Refresh
    17.         If (Image1.Picture = Image2.Picture) And (Image2.Picture = Image3.Picture) Then
    18.                MsgBox "Las imagenes son iguales"
    19.         End If
    20. End If
    21. End Sub

    Pués no me salta el msgbox, copié el codigo tal y como lo pusiste y cuando salen las 3 imagenes iguales no hace nada...

  6. #6
    RoyMata está desconectado Senior Member Avanzad@
    Fecha de ingreso
    06 ago, 11
    Ubicación
    Cartago, Costa Rica
    Mensajes
    178

    Predeterminado

    Ok, sin conocer los datos que traes cargados en tu file1 me parece que el problema va ligado al formato de tus imagenes. Entonces pregunto: son imagenes bitmaps? o son fotografias? o tienen algun otro formato? Este codigo que te estoy pasando funcionaria al hacer la comparacion con imagenes de un unico plano en bitmaps de no mas de 16 bits. La comparacion se esta haciendo simplemente con el objeto almacenado en la propiedad Picture del control. Si se tratara de imagenes mas complejas entonces ya se complicaria tambien la comparacion porque habria que almacenar en un array de bytes y luego comparar los arrays (se me ocurre de primera mano) o de una forma mas burda comparar pixel por pixel en cada imagen (lo que terminaria en un codigo bastante cargado y un proceso lento dependiendo del tamaño de las imagenes).
    Podrias indicarnos el formato que traen las imagenes, ademas de los datos contenidos en File1 (nombre y extension de los archivos)

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Visual Studio .VisualBasic.net .ADO.NET .ASP.NET .Framework .Crystal report
[Visual Basic .NET · Información legal · Condiciones de uso · Publicidad · Contacto · RSS novedades Foro · Inicio]
Un sitio web de Internelia (Ontecnia) © Copyright 2013 canalvisualbasic.net. Todos los derechos reservados