VB6 com animação

gilmaga

Membro
Boas pessoal,

Preciso de colocar numa janela criada em VB6 uma simulação de, por exemplo, dois portões a abrir e/ou fechar.
Já tentei colocar 2 rectângulos, manipulando os deslocamentos, mas não me pareceu boa "política", além de que não serve para portões basculantes.
Alguém tem uma ideia para implementar isto?

O problema é que eu posso querer aumentar/diminuir a velocidade de deslocamento dos ditos portões.

A quem puder ajudar, obrigado.

Cumps
 
Boas pessoal,

Preciso de colocar numa janela criada em VB6 uma simulação de, por exemplo, dois portões a abrir e/ou fechar.
Já tentei colocar 2 rectângulos, manipulando os deslocamentos, mas não me pareceu boa "política", além de que não serve para portões basculantes.
Alguém tem uma ideia para implementar isto?

O problema é que eu posso querer aumentar/diminuir a velocidade de deslocamento dos ditos portões.

A quem puder ajudar, obrigado.

Cumps

Boas,
espero que isto ajude. Faz este teste.
Crias um formulario metes la 1 frame e 1 timer com 1 intervalo de 2 segundos
e dps faz isto Private Sub Timer1_Timer()
Frame2.Height = Frame2.Height - 150 ' aqui depois podes difinir o deslocamento que queres.
End Sub

e convem depois também teres forma de definires um intervalo maior ou menor consoante o q tu queres.
Espero q ajude
 
Este pessoal não larga o VB6 por nada...

Se quiseres tornar o portão mais bonito, ao invés de usares rectângulos, usa Images.
Desta forma tens os mesmo "rectângulos" mas com uma imagenzinha do portão.

Vais ter sempre o problema do flickering, mas não te quero enfiar por os negros e práticamente inexistentes caminhos de OOP no VB6, para utilizares objectos num thread diferente do de design.

Para animar, podes usar a técnica do palmoura sim, apenas com uns pequenos reparos:

- Ao invés de Frames (até era mais leve usares os ditos rectangulos ou labels) usas as images (não as pictureboxes. É o outro controlo que se chama simplesmente Image. Ainda que a PictureBox melhorasse o flickering, ias ter mais problemas em esticar a imagem)

- Nas propriedades da image, há uma propriedade que dita como a imagem deve ser manipulada de acordo com as dimensões do controlo. Metes "stretched", ou "stretch" (não me lembro ao certo) para que a imagem estique e encolha

- Ao invés de "2 segundos" (2000 msecs) metes 2 msecs no interval (interval = 2)

Daí, trocas o tal 150 para outro valor, consoante a velocidade, tal como o palmoura disse.

Desta forma, ao encolher e esticar verticalmente a imagem, dá te a sensação de um basculante visto de frente. E com a imagenzinha ainda mais bonitinho fica.

Outro reparo:

Image1.Height = Image1.Height - 150 --> "Abre o portão"

Image1.Height = Image1.Height + 150 --> "Fecha o portão"

Em ambos os casos, vais precisar de limitar os tamanhos através de IF's se não queres ter surpresas ao abrir o portão, ou risadas ao fechar o portão.

Se usasses .NET até te mandava um exemplo pah.... considera castigo por usares o VB6! :P lol
 
Última edição:
Este pessoal não larga o VB6 por nada...lol

Acredita que é ainda também muito usado por muita empresa e quando se lhes fala, então e .NET não?
- és quase "espancado" por esses dinossauros com 20 anos de experiência, há muita resistência à mudança ainda
:P

Eu por exemplo estou a desenvolver uma ferramenta de raíz em Vb6 que poderia ser muito bem feita em .NET :p

Convém seguires as dicas do Ribeiro55 que parecem mais consistentes, o q te dei foi apenas um empurrão. e não te esqueças de controlar os limites mínimos e máximos como ele refere.
 
gilmaga,

Desculpa lá continuar o offtopic mas já tens ajuda para o teu problema :)

Acredita que é ainda também muito usado por muita empresa e
Eu por exemplo estou a desenvolver uma ferramenta de raíz em Vb6 que poderia ser muito bem feita em .NET

Então porque não fazes em .NET e depois utilizas no VB6 ?

Sempre tiras partido das potencialidades na .NET Framework e continuas depois a usar o VB6. É só uma ideia :)
 
Não entendi ?

Boas,
o problema é que ha muita coisa diferente do .net a nivel de sintaxe
Ex:
VB6
While condicao
instrucao 1
....
instrucao n
wend

txtNome = rs.fields("Nome")

em .NET
while condicao
.....
end while

e no .net teríamos q ter txtNome.text = rs.fields("nome").value

mas este não seria o problema. A questão do .Net é so porque isto poderia ser feito multithreading e ficaria com 1 codigo mais simples do q em vb6 :)
 
Boas,
A questão do .Net é so porque isto poderia ser feito multithreading e ficaria com 1 codigo mais simples do q em vb6 :)

Não era bem isto que querias dizer pois não! O que é que o multithreading tem a ver com o código mais simples ... uma coisa não tem nada a ver com a outra.


O que disse é que no VB6 podes utilizar bibliotecas do .NET, utilizando classes COM Interop, e com isso aproveitar a plataforma .NET Framework

Vê este exemplo: VB.NET: Criação de Classes COM Interop (VB6)
 
Acredita que é ainda também muito usado por muita empresa e quando se lhes fala, então e .NET não?
- és quase "espancado" por esses dinossauros com 20 anos de experiência, há muita resistência à mudança ainda
:P

és quase espancado quando descobrires o que é dar suporte ao framework 1.1, 1.1.1, 1.1.23, 1.1.34, etc (números atirados para o ar) e descobrires que em todos eles há manhas que tens de saber porque a microsoft corrige "features" e o código deixa de funcionar correctamente, quando o cromo lá do fundo da sala manda a os progs em vb6 para todos sem se preocupar

bem voltando ao tópico já fiz o upload de um exemplo para o pscode falta só ele ser aprovado, quando for eu meto aqui o link para o ficheiro
 
com todo o respeito,( código e o programa estao espectacular) Mas axo que o gilmanga vai ter um bocadinho de dificuldade em explicar o código ao professor, (se é que isto é um projecto para a escola) visto que não deve saber metado do código que lá está, penso que quereria algo mais simples.

Mas parabens tá uma demo espectacular!
 
Back
Topo