¿Puedo asignar a un objeto o un picture una imagen desde mi objeto imagelist en Visual Basic?

Mi duda es si podría asignar a un objeto image o a un picture, una imagen desde un objeto imagelist, es decir, que una imagen que yo tenga cargada en mi imagelist, la pueda asignar a un image o a un picture.
Mi intención es la de mediante varias imágenes cargadas en un imagelist y con un timer animar estas imágenes como si fuera un gifs animado.

3 Respuestas

Respuesta
1
Si, si puedes hacerlo.
La forma de asignar una imagen de un ImageList a un control Image es:
Image1.Picture = ImageList1.ListImages(N).Picture
Donde N es evidentemente, el indice de la imagen en el ImageList
Suerte :-)
Respuesta
1
Si puedes hacer lo que quieres, para que lo veas mejor te pongo aquí un pequeño proyecto que te he creado:
El proyecto contiene un Form con un Timer, un Commandbuton, un PictureBox y un imagelist, en el imagelist he insertado 4 imágenes de 32 X 32, el timer le puesto el interval a 500, este seria el código del formulario:
Option Explicit
Dim Posicion As Long
Private Sub Command1_Click()
Timer1.Enabled = Not (Timer1.Enabled)
End Sub
Private Sub Form_Load()
Posicion = 1
End Sub
'Para el evento timer puedes utilizar esto (para asignarlo a la propiedad picture y mostrarlo a tamaño normal):
Private Sub Timer1_Timer()
Select Case Posicion
Case 1
Picture1.Picture = ImageList1.ListImages(1).Picture
Posicion = 2
Case 2
Picture1.Picture = ImageList1.ListImages(2).Picture
Posicion = 3
Case 3
Picture1.Picture = ImageList1.ListImages(3).Picture
Posicion = 4
Case 4
Picture1.Picture = ImageList1.ListImages(4).Picture
Posicion = 1
End Select
End Sub
'o tambien puedes utilizar esto (para dibujarlo al tamaño que tu quieras, solo tienes que cambiar el alto y el ancho)
Private Sub Timer1_Timer()
Picture1.ScaleMode = 3
Picture1.AutoRedraw = True
Picture1.Cls
Select Case Posicion
Case 1
Picture1.PaintPicture ImageList1.ListImages(1).Picture, 0, 0, 128, 128
Posicion = 2
Case 2
Picture1.PaintPicture ImageList1.ListImages(2).Picture, 0, 0, 128, 128
Posicion = 3
Case 3
Picture1.PaintPicture ImageList1.ListImages(3).Picture, 0, 0, 128, 128
Posicion = 4
Case 4
Picture1.PaintPicture ImageList1.ListImages(4).Picture, 0, 0, 128, 128
Posicion = 1
End Select
End Sub
Respuesta
1
Tienes que hacer algo como esto.
Picture1.Picture = ImageList1.ListImages.Item(1).Picture
Image1.Picture = ImageList1.ListImages.Item(2).Picture
Fíjate que en este código el primero asigna el item sub 1 al picture y el item sub 2 al image.
Oye genial tu consejo.es que tenia el problema de no disponer de un ocx para mis gifs. Gracias a tu ayuda he podido hacer mis gifs animados. Muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas