Autor
|
Tema: Gif en form (Leído 9,460 veces)
|
BenRu
The Prodigy
Desconectado
Mensajes: 4.006
|
Hola...como puedo añadir un gif a un form? y que este cuando se ejecute se mueve (actue normal)? Lo he metido por picture box e image...y se queda estatico...
A que se debe?
|
|
|
En línea
|
|
|
|
Xpeed
Desconectado
Mensajes: 472
Res Publica Non Dominetur
|
bajate un ocx que permita la reproduccion de este para que no se quede en la primera imagen Edito: de aqui lo puedes bajar este es bueno AQUIun saludo.
|
|
« Última modificación: 18 Agosto 2005, 19:54 pm por Xpeed »
|
En línea
|
|
|
|
BenRu
The Prodigy
Desconectado
Mensajes: 4.006
|
Ya me lo baje pero no se muy bien que hacer con el... En el rar me vienen tres.. AniGIF.ocx AniGIF2.lic AniGIF ( Control Typelib Cache) He agregado el ocx al proyecto...como puedo agregar los dos otros? ??? Muchas gracias tio
|
|
|
En línea
|
|
|
|
Xpeed
Desconectado
Mensajes: 472
Res Publica Non Dominetur
|
es solo el ocx , el lic es para que no caduque la licencia de dicho control, solo con ese ya puedes reproducir tus gif's (obviamente descomprimelos en la misma carpeta y asi ya tienes el control que necesitabas
un saludo.
|
|
|
En línea
|
|
|
|
BenRu
The Prodigy
Desconectado
Mensajes: 4.006
|
Pues lo descomprimo y lo mismo en la misma carpeta y no funca...
|
|
|
En línea
|
|
|
|
BenRu
The Prodigy
Desconectado
Mensajes: 4.006
|
Ya he logrado que funcione...tienes que activarlo... Si alguien tiene la curiosidad de como es que me lo diga Gracias Xpeed
|
|
|
En línea
|
|
|
|
NYlOn
Desconectado
Mensajes: 842
OOOOHHHHHH, TARAGÜIIII xDDDDDD
|
si no keres usar un OCX pode hacer lo siguiente (es medio complicado, te tiro la idea nomas : ) 1: Le haces una copia al GIF (pq lo vamos a tener que descomponer) y le pones de nombre gifEntero 2: Te bajas el Microsoft GIF Animator (buscalo x google) 3: Abris tu GIF con este programita 4: Una vez abierto, borras todas las imagenes MENOS la primera. 5: Le das a "Guardar como..." y le pones de nombre Gif1 6: Abris el gifEntero (el que guardaste al principio de todo) y repetis el paso 4, pero en vez de dejar la PRIMERA foto dejas la SEGUNDA 7: Guardas como Gif2 8: Supongo que se entiendo el procedimiento. Cuando ya hayas guardado todas las imagenes que tiene el GIF abris el VB y pones un Picture, un ImageList y tantos Timers como imagenes tengas. 9: Pones todas las imagenes que guardaste (Gif1, Gif2, Gif3, ...) en el ImageList 10: Ahora viene el codigo xD Private Sub Form_Load() Picture1.Picture = ImageList.ListImages("Gif1").Picture 'Pone el la primera imagene en el picture Timer1.Interval = 500 'Empieza la cadena del GIF End Sub Private Sub Timer1_Timer() Picture1.Picture = ImageList1.ListImages("GIF1").Picture Timer2.Interval = 500 'Este valor lo podes ir cambiando depende de la velocidad que kieras que tenga tu GIF Timer1.Interval = 0 End Sub Private Sub Timer2_Timer() Picture1.Picture = ImageList1.ListImages("GIF2").Picture Timer3.Interval = 500 'Este valor lo podes ir cambiando depende de la velocidad que kieras que tenga tu GIF Timer2.Interval = 0 End Sub Private Sub Timer3_Timer() Picture1.Picture = ImageList1.ListImages("GIF3").Picture Timer1.Interval = 500 'Vuelve al Timer (genera un bucle) Timer3.Interval = 0 End Sub
Bueno espero que se haya entendido sino, postea ^^ NOTA: si te las arreglas podes hacer GIFs con tus propias imagenes en el VB un abraz0 -G0nz4-
|
|
|
En línea
|
|
|
|
Numeros
Desconectado
Mensajes: 110
|
En Image1(1) ...hasta... Imagen1(N) para cada cuadro del Gif Private Sub Timer1_Timer() Static i i = i + 1: If i = Image1.Count Then i = 1 Image1(0).Picture = Image1(i).Picture End Sub También con el ImageList, puedes hacerlo parecido usando el Index de los Items; la idea NYlOn - te recomiendo que uses matrices de controles y bucles, te ahorrarás cantidad de código. Chau
|
|
« Última modificación: 22 Agosto 2005, 06:37 am por Numeros »
|
En línea
|
|
|
|
Numeros
Desconectado
Mensajes: 110
|
Siguiendo este hilo, no he querido dejar de compartir otro código mucho más autónomo, con el cual sé que alguno que otro se animará ya a crear su propio OCXSe usa un control Image (con Index = 0 - previamente establecido para crear un array) y un Timer.Dim RepeatTimes& Dim RepeatCount&
Private Sub Form_Load() LoadAniGif App.Path & "\Ejemplo.Gif", Image1 'El Gif a reproducir en el mismo directorio del programa End Sub
Private Sub LoadAniGif(xFile As String, xImgArray) Dim F1, F2 Dim Image1s() As String Dim imgHeader As String Static buf$, picbuf$ Dim fileHeader As String Dim imgCount Dim i&, j&, xOff&, yOff&, TimeWait& Dim GifEnd GifEnd = Chr(0) & "!ù" Timer1.Enabled = False For i = 1 To xImgArray.Count - 1 Unload xImgArray(i) Next i F1 = FreeFile On Error GoTo badFile: Open xFile For Binary Access Read As F1 buf = String(LOF(F1), Chr(0)) Get #F1, , buf Close F1 i = 1 imgCount = 0 j = (InStr(1, buf, GifEnd) + Len(GifEnd)) - 2 fileHeader = Left(buf, j) i = j + 2 RepeatTimes& = Asc(Mid(fileHeader, 126, 1)) + (Asc(Mid(fileHeader, 127, 1)) * 256) Do imgCount = imgCount + 1 j = InStr(i, buf, GifEnd) + Len(GifEnd) If j > Len(GifEnd) Then F2 = FreeFile Open "tmp.gif" For Binary As F2 picbuf = String(Len(fileHeader) + j - i, Chr(0)) picbuf = fileHeader & Mid(buf, i - 1, j - i) Put #F2, 1, picbuf imgHeader = Left(Mid(buf, i - 1, j - i), 16) Close F2 TimeWait = ((Asc(Mid(imgHeader, 4, 1))) + (Asc(Mid(imgHeader, 5, 1)) * 256)) * 10 If imgCount > 1 Then xOff = Asc(Mid(imgHeader, 9, 1)) + (Asc(Mid(imgHeader, 10, 1)) * 256) yOff = Asc(Mid(imgHeader, 11, 1)) + (Asc(Mid(imgHeader, 12, 1)) * 2561) Load xImgArray(imgCount - 1) xImgArray(imgCount - 1).ZOrder 0 xImgArray(imgCount - 1).Left = xImgArray(0).Left + (xOff * 15) xImgArray(imgCount - 1).Top = xImgArray(0).Top + (yOff * 15) End If xImgArray(imgCount - 1).Tag = TimeWait xImgArray(imgCount - 1).Picture = LoadPicture("tmp.gif") Kill ("tmp.gif") i = j End If Loop Until j = Len(GifEnd) If i < Len(buf) Then F2 = FreeFile Open "tmp.gif" For Binary As F2 picbuf = String(Len(fileHeader) + Len(buf) - i, Chr(0)) picbuf = fileHeader & Mid(buf, i - 1, Len(buf) - i) Put #F2, 1, picbuf imgHeader = Left(Mid(buf, i - 1, Len(buf) - i), 16) Close F2
TimeWait = ((Asc(Mid(imgHeader, 4, 1))) + (Asc(Mid(imgHeader, 5, 1)) * 256)) * 10 If imgCount > 1 Then xOff = Asc(Mid(imgHeader, 9, 1)) + (Asc(Mid(imgHeader, 10, 1)) * 256) yOff = Asc(Mid(imgHeader, 11, 1)) + (Asc(Mid(imgHeader, 12, 1)) * 2561) Load xImgArray(imgCount - 1) xImgArray(imgCount - 1).ZOrder 0 xImgArray(imgCount - 1).Left = xImgArray(0).Left + (xOff * 15) xImgArray(imgCount - 1).Top = xImgArray(0).Top + (yOff * 15) End If xImgArray(imgCount - 1).Tag = TimeWait xImgArray(imgCount - 1).Picture = LoadPicture("tmp.gif") Kill ("tmp.gif") End If On Error GoTo badTime Timer1.Interval = CInt(xImgArray(0).Tag) badTime: Timer1.Enabled = True Exit Sub badFile: MsgBox "File not found.", vbExclamation, "File Error"
End Sub
Private Sub Timer1_Timer()
For i = 0 To Image1.Count If i = Image1.Count Then If RepeatTimes > 0 Then RepeatCount = RepeatCount + 1 If RepeatCount > RepeatTimes Then Timer1.Enabled = False Exit Sub End If End If For j = 1 To Image1.Count - 1 Image1(j).Visible = False Next j On Error GoTo badTime Timer1.Interval = CLng(Image1(0).Tag) badTime: Exit For End If If Image1(i).Visible = False Then Timer1.Interval = CLng(Image1(i).Tag) On Error GoTo badTime2 Image1(i).Visible = True badTime2: Exit For End If Next i
End Sub
Enjoy
|
|
« Última modificación: 24 Agosto 2005, 14:47 pm por Numeros »
|
En línea
|
|
|
|
NYlOn
Desconectado
Mensajes: 842
OOOOHHHHHH, TARAGÜIIII xDDDDDD
|
Private Sub Timer1_Timer() Static i i = i + 1: If i = Image1.Count Then i = 1 Image1(0).Picture = Image1(i).Picture End Sub
para que sirve "Static" ^^ pero si es lo que me imagino, eso cambiaria la imagen rapidisimo, y no le daria efecto al gif ... si estoy equivocado hacemelo saber un abraz0 G0nz4
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Login Form WinForm c#
.NET (C#, VB.NET, ASP)
|
evicar
|
5
|
8,411
|
3 Diciembre 2010, 06:48 am
por [D4N93R]
|
|
|
Pasar valores de Form a Form JS
Desarrollo Web
|
Riki_89D
|
7
|
7,959
|
7 Diciembre 2010, 00:12 am
por Riki_89D
|
|
|
problemas con los form
.NET (C#, VB.NET, ASP)
|
chelita
|
0
|
1,543
|
8 Julio 2011, 18:19 pm
por chelita
|
|
|
[SOLUCIONADO] No me deja emparentar el form (Form.parent =)
.NET (C#, VB.NET, ASP)
|
Eleкtro
|
1
|
2,136
|
8 Enero 2013, 17:34 pm
por Eleкtro
|
|
|
Form simpre al frente y bloquenado el anteriro form
.NET (C#, VB.NET, ASP)
|
_CrisiS_
|
3
|
3,136
|
20 Diciembre 2017, 12:42 pm
por Eleкtro
|
|