elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 02:29  


Tema destacado: [Overclocking] Récords de overclock del foro

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  Gif en form
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Gif en form  (Leído 3,670 veces)
BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.004


Ver Perfil
Gif en form
« en: 18 Agosto 2005, 19:14 »

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 Desconectado

Mensajes: 480


Res Publica Non Dominetur


Ver Perfil
Re: Gif en form
« Respuesta #1 en: 18 Agosto 2005, 19:51 »

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

AQUI

un saludo.


« Última modificación: 18 Agosto 2005, 19:54 por Xpeed » En línea

BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.004


Ver Perfil
Re: Gif en form
« Respuesta #2 en: 18 Agosto 2005, 21:00 »

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 Desconectado

Mensajes: 480


Res Publica Non Dominetur


Ver Perfil
Re: Gif en form
« Respuesta #3 en: 18 Agosto 2005, 21:26 »

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 Desconectado

Mensajes: 4.004


Ver Perfil
Re: Gif en form
« Respuesta #4 en: 18 Agosto 2005, 21:54 »

Pues lo descomprimo y lo mismo en la misma carpeta y no funca... :-\
En línea
BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.004


Ver Perfil
Re: Gif en form
« Respuesta #5 en: 18 Agosto 2005, 22:00 »

Ya he logrado que funcione...tienes que activarlo...

Si alguien tiene la curiosidad de como es que me lo diga  :P

Gracias Xpeed
En línea
NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
Re: Gif en form
« Respuesta #6 en: 21 Agosto 2005, 22:43 »

si no keres usar un OCX pode hacer lo siguiente
(es medio complicado, te tiro la idea nomas ::D)

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
Código:
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 Desconectado

Mensajes: 110



Ver Perfil
Re: Gif en form
« Respuesta #7 en: 22 Agosto 2005, 04:51 »

En Image1(1) ...hasta... Imagen1(N) para cada cuadro del Gif

Código:
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 por Numeros » En línea
Numeros

Desconectado Desconectado

Mensajes: 110



Ver Perfil
Re: Gif en form
« Respuesta #8 en: 24 Agosto 2005, 14:26 »

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 OCX

Se usa un control Image (con Index = 0 - previamente establecido para crear un array) y un Timer.

Código:
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 por Numeros » En línea
NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
Re: Gif en form
« Respuesta #9 en: 28 Agosto 2005, 04:18 »

Citar
Código:
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  ;D

un abraz0

G0nz4
En línea

Numeros

Desconectado Desconectado

Mensajes: 110



Ver Perfil
Re: Gif en form
« Respuesta #10 en: 28 Agosto 2005, 05:56 »

Citar
para que sirve "Static" ^^

De la Ayuda de Visual Basic

Citar
Además de un alcance, las variables tienen un tiempo de vida, el periodo de tiempo durante el cual mantienen su valor. Se preservan los valores de las variables a nivel de módulo y públicas durante el tiempo de duración de la aplicación. Sin embargo, las variables locales declaradas con Dim sólo existen mientras se ejecuta el procedimiento en el cual se han declarado. Normalmente, cuando termina la ejecución de un procedimiento, no se conservan los valores de sus variables locales y se reclama la memoria utilizada por las variables locales. La próxima vez que se ejecute el procedimiento se reinicializarán todas sus variables locales.

Sin embargo, puede preservar el valor de una variable local si hace que la variable sea estática. Utilice la palabra clave Static para declarar una o más variables dentro de un procedimiento, exactamente igual que si lo hiciera con la instrucción Dim:

Static Profundo

CHAU  ;)
« Última modificación: 28 Agosto 2005, 06:07 por Numeros » En línea
NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
Re: Gif en form
« Respuesta #11 en: 28 Agosto 2005, 08:20 »

GRACIAZ ^_^
peor no me respondiste
Citar
si es lo que me imagino, eso cambiaria la imagen rapidisimo, y no le daria efecto al gif ...
si estoy equivocado hacemelo saber ;D

NOTA: no soy vago, jugando con la sentencia KILL elimine la ayuda del VB xDDD

Thx Again

G0nz4
En línea

osirisra

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: Gif en form
« Respuesta #12 en: 28 Agosto 2005, 19:24 »

oye y por que no usas flash es mas facil y mejor y el ocx ya viene en winxp profesional
En línea
Rey11


Desconectado Desconectado

Mensajes: 3.244



Ver Perfil WWW
Re: Gif en form
« Respuesta #13 en: 28 Agosto 2005, 19:34 »

Tendrá que descargarse el flash y aprender a usarle (que es dificilillo).
Además no estoy tan seguro de que el ocx del flash venga en el win xp.
Saludos  ;)
En línea

Numeros

Desconectado Desconectado

Mensajes: 110



Ver Perfil
Re: Gif en form
« Respuesta #14 en: 28 Agosto 2005, 22:38 »

Citar
si es lo que me imagino, eso cambiaria la imagen rapidisimo, y no le daria efecto al gif ...
si estoy equivocado hacemelo saber Grin

Si no te gusta el primero puedes usar el segundo, a que no está  más interesante va?..  ;)
También debo aclarar que no es mio.. pero si lo se aplicar muy bien, jeje  :D

Saludos.
« Última modificación: 28 Agosto 2005, 22:40 por Numeros » En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Login Form WinForm c#
.NET
evicar 5 2,610 Último mensaje 3 Diciembre 2010, 06:48
por [D4N93R]
Pasar valores de Form a Form JS
Desarrollo Web
Riki_89D 7 2,217 Último mensaje 7 Diciembre 2010, 00:12
por Riki_89D
problemas con los form
.NET
chelita 0 251 Último mensaje 8 Julio 2011, 18:19
por chelita
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines