elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  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 8,895 veces)
BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


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

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: 472


Res Publica Non Dominetur


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

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 pm por Xpeed » En línea

BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


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

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: 472


Res Publica Non Dominetur


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

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.006


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

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

BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


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

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 pm »

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 am »

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 am por Numeros » En línea

Numeros

Desconectado Desconectado

Mensajes: 110



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

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 pm 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 am »

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

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Login Form WinForm c#
.NET (C#, VB.NET, ASP)
evicar 5 8,100 Último mensaje 3 Diciembre 2010, 06:48 am
por [D4N93R]
Pasar valores de Form a Form JS
Desarrollo Web
Riki_89D 7 7,650 Último mensaje 7 Diciembre 2010, 00:12 am
por Riki_89D
problemas con los form
.NET (C#, VB.NET, ASP)
chelita 0 1,407 Último mensaje 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 1,950 Último mensaje 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 2,875 Último mensaje 20 Diciembre 2017, 12:42 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines