1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB6 com animação

Discussão em 'Programação' iniciada por gilmaga, 2 de Fevereiro de 2009. (Respostas: 11; Visualizações: 1245)

  1. 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
     
  2. 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
     
  3. ribeiro55

    ribeiro55 Power Member

    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: 4 de Fevereiro de 2009
  4. 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.
     
  5. jpaulino

    jpaulino Power Member

    gilmaga,

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

    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 :)
     
  6. RaCcOn

    RaCcOn Power Member

    Ou usas um ou usas o outro!:)
     
  7. jpaulino

    jpaulino Power Member

    Não entendi ?
     
  8. 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 :)
     
  9. jpaulino

    jpaulino Power Member

    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)
     
  10. _Neo__

    _Neo__ Power Member

    é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
     
  11. xina12

    xina12 Power Member

    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!
     

Partilhar esta Página