Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

VictorCacciari

Timers e Picture Boxes

Recommended Posts

Olá Pessoal.

 

Tenho um pequeno problema para resolver, acho que a coisa é muito simples, mas como não estou muito familiarizado com o VB isso ainda é um bicho de sete cabeças...

 

É o seguinte, tenho 16 PictureBoxes alinhadas em uma tabela num form.

Tenho também um array de inteiros a dizer-me o tempo em que a pictureBox deve carregar a imagem.

 

Por exemplo, dado o array: {0, 0, 400, 800, 1000, ... }

Eu quero que a primeira e a segunda sejam carregadas instantaneamente, a terceira seja carrega 400 milisegundos após iniciar o form, a quarta seja carregada 800 milisegundos após inicializar o fom, etc...

 

Pensei então em criar uma classe "timedPictureBox", que consiste num timer e numa picture box:

Public Class timedPicBox
        Public pic As PictureBox
        Public timer As System.Timers.Timer

        Public Sub New(ByVal p As Point)
            Me.pic.Location = p 'Especifica a localização da picture box no form
        End Sub

        'Inicia o timer para disparar após um intervalo de "time" segundos e a PictureBox carregar a imagem "img"
        Public Sub Run(ByVal time As Integer, ByVal img As String)
            AddHandler timer.Elapsed, AddressOf OnTimedEvent

            Me.timer.AutoReset = False
            Me.timer.Interval = time

            Me.pic.Enabled = True
            Me.pic.Visible = False
            Me.pic.Image = Image.FromFile(img).Clone

            Me.timer.Enabled = True
        End Sub

        Public Shared Sub OnTimedEvent(ByVal source As Object, ByVal e As System.Timers.ElapsedEventArgs)
            source.pic.Visible = True
        End Sub

    End Class

O problema é: não funciona.

A execução simplemente para na chamada do New.

 

Qualquer ajuda é bem vinda.

Obrigado.

Victor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Victor, beleza?

 

Entao, eu testei aqui e ele execute o construtor sem problemas. O problema eh que o construtor realmente nao esta mandando fazer nada. Ele ateh especifica o ponto que o pic deve iniciar, mas soh isso. Nao existe nenhuma rotina na sua classe que esteja fazendo aparecer um novo picturebox na tela nem nada assim.

 

Sua intencao eh instanciar um ovo picture box na tela de acordo com o tamanho de seu array ou a quantidade sera sempre fixa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.