cómo crear una rejilla de cuadros de imagen?

rocio
15 de Diciembre del 2003
hola!
tienes alguna idea de cómo puedo crear una rejilla de imagenes que se cargue rápidamente?

ya hice una, pero tarda un buen tiempo, necesito que sea de 100 X 100.

Gracias por tu ayuda! = )

esto es lo que escribí
Private Sub Form_Load()
alto = Image1(0).Height
ancho = Image1(0).Width
Image1(0).Appearance = 0
Image1(0).BorderStyle = 1

Fila = 0
Columna = 0
For i = 1 To 6399
Load Image1(i)

Image1(i).BorderStyle = 1
Image1(i).Appearance = 0
Image1(i).Visible = True
If i Mod 80 = 0 Then
Fila = Fila + alto
Columna = 0
Else
Columna = Columna + ancho
End If
Image1(i).Top = Fila
Image1(i).Left = Columna
Next i
END SUB.

virus b
15 de Diciembre del 2003
Hola Rocio:
En visual basic tienes a tu disposicion la funcion PaintPicture. Es re-facil de usar, pero si estas buscando velocidad, me parece que el código enviado por Juan es la solución.
Saludos
Pablo B

Juan
15 de Diciembre del 2003
Primero que nada, he probado tu código y no me iba
demasiado lento. Por otro lado, si lo que pretendes es
simplemente hacer un fondo tipo mosaicome parece
más práctico y rápido dibujarlo con la función BitBlt.

Aquí te pongo el código de ejemplo, es muy importante
que el form tenga Autoredraw=True, y que la imagen a
dubujar esté asignada a su propiedad Picture, no se
necesita ningún control image:

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = origen


Private Sub Form_Load()
Dim alto As Long, ancho As Long
Dim fila As Single, columna As Single, i As Integer
alto = Me.Picture.Height / (Screen.TwipsPerPixelY * 2)
ancho = Me.Picture.Width / (Screen.TwipsPerPixelX * 2)

fila = 0
columna = 0
For i = 1 To 9999
If i Mod 100 = 0 Then
fila = fila + alto
columna = 0
Else
columna = columna + ancho
End If
BitBlt Me.hDC, columna, fila, ancho, alto, Me.hDC, 0, 0, SRCCOPY
Next i
End Sub