Imágenes

Respuesta de
a
Usuario
Hola experto.saludos.. tengo un problema.
He creado un formulario que funciona de la siguiente manera: en un Combobox tengo un listado con los nombre de algunas señalizacones de transito al yo dar click en algún Item de la lista me trae la respectiva imagen equivalente al item. Pero estas imágenes hacen el programa muy pesado ocupando mucho en la memoria.el código que he empleado es el siguiente:

Private Sub ComboBox1_Change()

If ComboBox1.Value = "Señalizaciones trabajos sobre zonas verdes" Then
Image1.Visible = True
Image2.Visible = False
Image3.Visible = False
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
Image10.Visible = False
Image11.Visible = False
Image12.Visible = False
Image13.Visible = False
Image14.Visible = False
End If

If ComboBox1.Value = "Señalización trabajos sobre andén y accesos peatonales con excavación" Then
Image1.Visible = False
Image2.Visible = True
Image3.Visible = False
Image4.Visible = False
Image5.Visible = False
Image6.Visible = False
Image7.Visible = False
Image8.Visible = False
Image9.Visible = False
Image10.Visible = False
Image11.Visible = False
Image12.Visible = False
Image13.Visible = False
Image14.Visible = False
End If
End sub
Y así sucesivamente para 20imagenes no se si hay alguna forma más sencilla de hacerlo ya que de esta el código es demasiado largo, un ciclo por cada imagen.
Gracias por tu ayuda.
Espero tu respuesta
Experto
Hola.
Tienes razón, esa no es la mejor forma de hacerlo, porque estás usando muchos objetos con imágenes.

Te recomiendo usar la función LoadPicture, con la cual podrás tener todos los archivos (de las imágenes) en un directorio y simplemente llamar cada una de acuerdo con el valor que se encuentre en tu combobox.

La usas de esta forma:
Image1.Picture = LoadPicture("c:\dir\file.gif")

Por otro lado, anidar If es una forma de hacer lo que intentas, pero te recomiendo que intentes utilizar un Case, que te será más sencillo y fácil de leer.

Si necesitas ayuda sobre la forma de usar el Case, no dudes en preguntar.

Saludos, Tavopz