Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
alexassa

[Resolvido] Criando um Form com imagens e fazer animação..

Recommended Posts

Ola,pessoal,sou novo aqui no Forum,,Agradeco desde ja ajuda de todos,,

estou querendo fazer um Form no você que contenha imagem,

e fazer elas se mover de baixo pra cima, como se fossem creditos...

com Label eu consegui,,,so que com imagens nao consegui,,,

alguem pode me ajudar?

segue abaixo o codigo do Label....

Option Explicit
Private Sub Form_Load()
Dim label As Object
For Each label In frmSaida
If Left(label.Name, 8) = "lblAnima" Then
label.Top = label.Top + 6100
If lblAnima17.Top = -360 Then Me.Hide

End If
Next
End Sub
Private Sub tmrAnima_Timer()
Dim label As Object
For Each label In frmSaida
If Left(label.Name, 8) = "lblAnima" Then
label.Top = label.Top - 20
If lblAnima17.Top = -360 Then Me.Hide

End If
Next
End Sub

aonde eu tenho 17 Label que estão se movendo de baixo pra cima, e quando o Label "lblAnima17" chega em "Top = -360" ele para...

agora gostaria de fazer o mesmo com as fotos...

Obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ve se isso serve ou da pra você adaptar

Private Sub Timer1_Timer()

Image1.Top = Image1.Top - 1

If Image1.Top = 100 Then Timer1.Enabled = False

End Sub

o tempo do timer eu setei pra 1ms

lembra de você levar em conta de que o a soma tem que ser possivel porque você não vai conseguir chegar a 2000 retirando 111 por segundo por exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,nao entendi o que você quis dizer..

e tentei fazer rodar e nao deu certo...

tem como você tentar fazer e postar seu codigo?

tipo tenho umas 10 foto que queria fazer elas subiren como se fosse creditos...

tentei fazer assim ,mas nao deu certo...

Private Sub Form_Load()
Dim Image As Object
For Each Image In FrmFotos
If Left(Image.Name, 8) = "Foto" Then
Image.Top = Image.Top + 6100
If Foto14.Top = -360 Then Me.Hide

End If
Next
End Sub
Private Sub tmrAnima_Timer()
Dim Image As Object
For Each Image In FrmFotos
If Left(Image.Name, 8) = "Foto" Then
Image.Top = Image.Top + 6100
If Foto14.Top = -360 Then Me.Hide

End If
Next
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

ve se é isso que você quer fazer?

60709563.gif

se for

Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Image1.Top = Image1.Top - 10
If Image1.Top = 100 Then Timer1.Enabled = False
End Sub

ai é so você adaptar

Compartilhar este post


Link para o post
Compartilhar em outros sites

use um array de imagens e use esse codigo

Dim n_img As Integer

Private Sub Form_Load()

Timer1.Interval = 100

Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()

For n_img = 0 To Image1.UBound

Image1(n_img).Top = Image1(n_img).Top - 10

If Image1(n_img).Top = 100 Then Timer1.Enabled = False

Next

End Sub

ve se isso serve qualquer coisa so falar

espero ter ajudado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara,agora você me pegou....

o que seria array de imagens ?

pelo que vi seria um banco de dados???

nao tem algo mais simples.rs

sou cabacao no vb e estou tentando fazer no Vb em japones ainda pra ajuda,,,rs

Vlwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

Array seria uma lista de imagens na qual todas tem o mesmo nome a unica coisa que muda seria o seu index por exemplo:

Nome(index)

imagem1(0)

imagem1(1)

imagem1(2)

o nome da foto é sempre o mesmo a unica coisa que muda é seu index

veja se consegue entender

Enquanto isso vou "tentar" bolar um metodo mais fácil

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora entendi e funcional...

Obrigado pela ajuda cara Valeuu mesmo!!!!:lol:

so que tem um problema...

quero colocar 17 fotos...e fazer elas irem subindo....e quando chegar na ultima fazer o Form fechar...

como faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque onde está em negrito pelo numero da ultima imagem

Dim n_img As Integer
Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
For n_img = 0 To Image1.UBound
Image1(n_img).Top = Image1(n_img).Top - 10
If Image1([B]n_img[/B]).Top = 100 Then
Timer1.Enabled = False
unload me [U]'ou me.hide , end voce decide o que colocar aqui[/U]
end if
Next
End Sub

também da assim lebra troca onde está em negrito pelo numero da imagem

Dim n_img As Integer
Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
For n_img = 0 To Image1.UBound
Image1(n_img).Top = Image1(n_img).Top - 10
If Image1([B]n_img[/B]).Top = 100 Then [I]unload me[/I]
Next
End Sub

Ve se isso ai ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara desculpe a demora,,eu tinha conseguido arrumar...

ve se esta certo..rs

Dim n_img As Integer
Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()

For n_img = 0 To Image1.UBound
Image1(n_img).Top = Image1(n_img).Top - 60
If Image1(19).Top = -2940 Then Timer1.Enabled = False
Next

If Image1(14).Top = -2520 Then
Rosa1.Visible = True
End If

If Image1(19).Top = -60 Then
Rosa2.Visible = True
End If


If Image1(19).Top = -2160 Then
Label1.Visible = True
End If

If Image1(19).Top = -2940 Then Me.Hide

End Sub

se der pra aprimorar ajuda aee,,,rsrs

Vlwwww

a Funcao "me.Hide" ele nao fica na memoria?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim a função me.hide deixa o programa ainda na memoria sim

acho que da pra mudar algumas coisinhas sim

 Dim n_img As Integer
Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()

For n_img = 0 To Image1.UBound
Image1(n_img).Top = Image1(n_img).Top - 60
[B]If Image1(19).Top = -2940 Then
unload me [/B][I]'se voce for fechalo quando ele chegar aqui pode deixar o unload aqui[/I][B]
elseif Image1(14).Top = -2520 Then
Rosa1.Visible = True
elseIf Image1(19).Top = -60 Then
Rosa2.Visible = True
elseIf Image1(19).Top = -2160 Then
Label1.Visible = True
end if[/B]
Next
End Sub

ou se voce quiser que o codigo fique mais leve pode fazer assim

Dim n_img As Integer
Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()

For n_img = 0 To Image1.UBound
Image1(n_img).Top = Image1(n_img).Top - 60
Next
[B]If Image1(19).Top = -2940 Then
unload me [/B][I]'se voce for fechalo quando ele chegar aqui pode deixar o unload aqui[/I][B]
elseif Image1(14).Top = -2520 Then
Rosa1.Visible = True
elseIf Image1(19).Top = -60 Then
Rosa2.Visible = True
elseIf Image1(19).Top = -2160 Then
Label1.Visible = True
end if[/B]
End Sub

A diferença é que no primeiro o codigo em negrito vai ser repetido uma vez para cada foto que existe a cada vez que o timer for acionado

Ja o segundo ele vai ser executado uma vez só cada vez que o timer for executado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×