VB2008 Tip: Letreiro Digital
Autor: Diego Silva | Publicado: 2011-08-29T21:27:00-03:00

Olá.
Hoje irei fazer algo inédito na história do Blog Diego Silva: irei postar um tutorial -- O primeiro tutorial -- sobre VB2008! Isso mesmo, por mais que eu não goste do VB2008 pela questão de funcionar somente com Framework de mais de 30MB de tamanho, é uma linguagem que vem se tornando bem popular no mundo da programação, por suportar mais funções e recursos que VB6, e isso eu não nego. 

Bom, vamos ao tutorial. Passarei aqui um código para criar um letreiro digital e desenhá-lo em uma Picturebox. 
Tutorial
Como no artigo anterior, fiz uma video-aula para ensinar passo a passo.

Projeto zipado
O projeto zipado encontra-se no link http://www.youtube.com/redirect?q=https%3A%2F%2Fskydrive.live.com%2F%3Fcid%3Db278d5e7a71b5dca%26sc%3Ddocuments%26uc%3D1%26nl%3D1%26id%3DB278D5E7A71B5DCA%2521156%23&session_token=Woh5PXNZ_OxGBLnGmLFx46hO7ih8MTMxNDc0OTkxNEAxMzE0NjYzNTE0 (Link de pasta do skydrive). Lembrando que é necessário ter o .Net Framework 4, que pesa míseros... 51MBs!! Arquivo este que você tem que repassar juntamente com seu programa no instalador se você não distribuir o código fonte junto com o aplicativo ou se o cliente não tiver (e com certeza não terá) o Framework.

O código a ser adicionado é o seguinte:

'Classe
Public Class Letreiro
    Public Posição As Integer 'posição do primeiro char.
    Public Buffer As Integer 'Tamanho de caracteres
    Public Controle As PictureBox
    Public fonte As Font
    Public cor As Brush

    Public Sub SetControle(ByRef PictBox As PictureBox)
        Controle = PictBox
    End Sub
    Public Sub SetBuffer(ByVal Tamanho As Integer)
        Buffer = Tamanho
    End Sub
    Public Sub SetCor(ByVal tCor As Brush)
        cor = tCor
    End Sub
    Public Sub SetFonte(ByVal tfonte As Font)
        fonte = tfonte

    End Sub
    Public Sub Andar()
        Dim bmp As New Bitmap(Controle.Width, Controle.Height)
        Dim texto As String
        texto = Space(Buffer) & Controle.Tag.ToString
        Dim g As Graphics = Graphics.FromImage(bmp)
        g.Clear(Controle.BackColor)
        texto = Mid(texto, Posição + 1, Buffer)
        g.DrawString(texto, fonte, cor, 0, 0)
        Controle.Image = bmp
        g.Dispose()
        g = Nothing

        texto = Space(Buffer) & Controle.Tag.ToString
        Posição += 1
        If Posição > Len(texto) Then
            Posição = 0
        End If
    End Sub

    Public Sub New()
        fonte = New Font("Courier New", 20, FontStyle.Regular)
        cor = Brushes.Black

    End Sub
End Class

No form:

'Form

Public Class Form1
    Dim marquee As New Letreiro

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        marquee.Andar()

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LetreiroPbx.Tag = TextBox1.Text
        marquee.SetControle(LetreiroPbx)
        marquee.SetBuffer(29)
        marquee.SetCor(Brushes.Red)
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        LetreiroPbx.Tag = TextBox1.Text
        'marquee.Posição = 0

    End Sub
End Class


É isso pessoal.
Se quiserem podem livremente enviar sugestões de artigos e matérias para o meu Twitter, para o email, ou aqui mesmo no blog, seja de VB.net, vb6, delphi7, C# (isso mesmo, C#) ou VisualC++.
Até o próximo artigo!