Buscar

Últimas inserções

Gerando planilhas XLS para Excel com formatação de colunas
MD5 direto no Sql Server
Aplicação demora muito para inicializar quando VisualStudio está "Loading Symbols"
Fazendo Painel de Leds em menos usando System.Drawing(parte 3)
Fazendo Painel de Leds em menos usando System.Drawing(parte 2)
- TODAS AS DICAS

Top Poggers (sempre)

Jar Jar Binks (136)
Cuban Pete (127)
Tufo (28)

Top Poggers (30 dias)


Área restrita

Logon

pogMasters.NET

Início
Busca Avançada
Contato

RSS
 

Fazendo Painel de Leds em menos usando System.Drawing(parte 3)

C#

21/06/2011 por Jar Jar Binks


Código fonte do exemplo: http://www.claytonfreitas.com.br/UserFiles/File/DesenvolvimentoSoftwares/LedPanel.zip


Se você sobreviveu e entendeu o código daqui: http://pogmasters.net/pogs/fazendo-painel-de-leds-em-menos-usando-systemdrawingparte-2.aspx , você merece continuar pela parte mais fácil do jogo, que é cjamar as suas classes para ver a mágica acontecer.
No seu Form1, coloque:

*Dois Botões (button1 e button2)
*Um PictureBox (pictureBox1)
*Um Timer (tmrScrollLeft)

Num contexto global no formulário, crie as seguintes variáveis:


Panel p; //nosso painel de leds
private bool pressed = false; // indica se o mouse está ou não clicado



Dê dois cliques no botão 1, use o seguinte código:

p = new Panel(10, 10);
pictureBox1.Image = p.DrawPanel();

O código acima vai instanciar um painel com 100 leds. E vai desenhá-lo no nosso pictureBox;


Dê dois cliques no botão 2, use o seguinte código:

tmrScrollLeft.Enabled = !tmrScrollLeft.Enabled; // vai habilitar ou desabilitar o timer

dê dois cliques no timer e escreva:

p.ScrollPanelLeft();
pictureBox1.Image = p.DrawPanel();

vai chamar o metodo para rolar o painel de leds para a esquerda e redesenhá-lo, dando impressão de movimento enquanto o timer estiver habilitado.

Manipule o MouseUp, MouseDown, e MouseMove do PictureBox, para acender ou apagar os leds conforme clicamos neles:


private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
pressed = true;

}

private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{

pressed = false;
}

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (pressed && p.LastChangedLed != p.getLedByPosition(e.X, e.Y))
{
p.ChangeStateByPosition(e.X, e.Y);
pictureBox1.Image = p.DrawPanel();
}
}


Se deu certo escreva um comentário!

:)

Abrazzz!!
 
   


Comentários sobre o artigo


Poste um comentário >>
Nome  
Email
Comentário    
Postar Comentário